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-dropdown-menu.mjs","sources":["../../../projects/yukit-web/helm/dropdown-menu/src/lib/hlm-dropdown-menu.ts","../../../projects/yukit-web/helm/dropdown-menu/src/lib/hlm-dropdown-menu-focus-on-hover.ts","../../../projects/yukit-web/helm/dropdown-menu/src/lib/hlm-dropdown-menu-checkbox.ts","../../../projects/yukit-web/helm/dropdown-menu/src/lib/hlm-dropdown-menu-checkbox-indicator.ts","../../../projects/yukit-web/helm/dropdown-menu/src/lib/hlm-dropdown-menu-group.ts","../../../projects/yukit-web/helm/dropdown-menu/src/lib/hlm-dropdown-menu-item.ts","../../../projects/yukit-web/helm/dropdown-menu/src/lib/hlm-dropdown-menu-item-sub-indicator.ts","../../../projects/yukit-web/helm/dropdown-menu/src/lib/hlm-dropdown-menu-label.ts","../../../projects/yukit-web/helm/dropdown-menu/src/lib/hlm-dropdown-menu-radio.ts","../../../projects/yukit-web/helm/dropdown-menu/src/lib/hlm-dropdown-menu-radio-indicator.ts","../../../projects/yukit-web/helm/dropdown-menu/src/lib/hlm-dropdown-menu-separator.ts","../../../projects/yukit-web/helm/dropdown-menu/src/lib/hlm-dropdown-menu-shortcut.ts","../../../projects/yukit-web/helm/dropdown-menu/src/lib/hlm-dropdown-menu-sub.ts","../../../projects/yukit-web/helm/dropdown-menu/src/lib/hlm-dropdown-menu-token.ts","../../../projects/yukit-web/helm/dropdown-menu/src/lib/hlm-dropdown-menu-sub-trigger.ts","../../../projects/yukit-web/helm/dropdown-menu/src/lib/hlm-dropdown-menu-trigger.ts","../../../projects/yukit-web/helm/dropdown-menu/src/index.ts","../../../projects/yukit-web/helm/dropdown-menu/src/yukit-web-helm-dropdown-menu.ts"],"sourcesContent":["import { type NumberInput } from '@angular/cdk/coercion';\nimport { CdkMenu } from '@angular/cdk/menu';\nimport { Directive, ElementRef, inject, input, numberAttribute, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { deriveMenuSideFromTransformOrigin, MENU_SIDE, type MenuSide } from '@spartan-ng/brain/core';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Directive({\n\tselector: '[hlmDropdownMenu],hlm-dropdown-menu',\n\thostDirectives: [CdkMenu],\n\thost: {\n\t\t'data-slot': 'dropdown-menu',\n\t\t'[attr.data-state]': '_state()',\n\t\t'[attr.data-side]': '_side()',\n\t\t'[style.--side-offset]': 'sideOffset()',\n\t},\n})\nexport class HlmDropdownMenu {\n\tprivate readonly _host = inject(CdkMenu);\n\tprivate readonly _elementRef = inject(ElementRef<HTMLElement>);\n\t// The trigger provides its configured side; CDK parents this content's injector under the trigger's.\n\tprivate readonly _menuSide = inject(MENU_SIDE, { optional: true });\n\n\tprotected readonly _state = signal('open');\n\tprotected readonly _side = signal<MenuSide>(this._menuSide?.side() ?? 'bottom');\n\n\tpublic readonly sideOffset = input<number, NumberInput>(1, { transform: numberAttribute });\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'motion-safe:data-open:animate-in motion-safe: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 bg-popover text-popover-foreground min-w-32 rounded-lg p-1 shadow-md ring-1 duration-100 my-[--spacing(var(--side-offset))] overflow-x-hidden overflow-y-auto outline-none',\n\t\t);\n\n\t\tthis.setSideFromTransformOrigin();\n\t\t// this is a best effort, but does not seem to work currently\n\t\t// TODO: figure out a way for us to know the host is about to be closed. might not be possible with CDK\n\t\tthis._host.closed.pipe(takeUntilDestroyed()).subscribe(() => this._state.set('closed'));\n\t}\n\n\tprivate setSideFromTransformOrigin() {\n\t\tconst side = this._menuSide?.side() ?? 'bottom';\n\t\t// CDK sets transform-origin on this element synchronously on attach; read it next tick and derive side\n\t\tsetTimeout(() => {\n\t\t\tthis._side.set(deriveMenuSideFromTransformOrigin(this._elementRef.nativeElement.style.transformOrigin, side));\n\t\t});\n\t}\n}\n","import { InputModalityDetector } from '@angular/cdk/a11y';\nimport { CdkMenu, CdkMenuItem } from '@angular/cdk/menu';\nimport { Directive, inject } from '@angular/core';\n\n/**\n * @internal\n * Moves DOM focus to the hovered menu item. CDK menus only move focus with the keyboard, so on a pointer\n * the highlight would otherwise stay on the last keyboard-focused item (leaving two rows highlighted) and,\n * when a submenu closes, focus would fall to <body>, the menu stack would report no focus, and the whole\n * dropdown would collapse. Following the pointer with focus (Radix/shadcn behaviour) keeps a single\n * highlight and keeps focus inside the menu stack. setActiveMenuItem also syncs the key manager so keyboard\n * navigation continues from the hovered item.\n *\n * Applied as a host directive on every dropdown item type (item, checkbox, radio, sub-trigger).\n */\n@Directive({\n\tselector: '[hlmDropdownMenuFocusOnHover]',\n\thost: {\n\t\t'(mouseenter)': '_focusOnHover()',\n\t},\n})\nexport class HlmDropdownMenuFocusOnHover {\n\tprivate readonly _cdkMenuItem = inject(CdkMenuItem, { self: true });\n\tprivate readonly _parentMenu = inject(CdkMenu, { optional: true });\n\tprivate readonly _inputModality = inject(InputModalityDetector);\n\n\tprotected _focusOnHover(): void {\n\t\t// Only skip synthetic hovers from touch taps; every real hover (mouse, or keyboard-then-hover,\n\t\t// which leaves the modality as 'keyboard') should move focus to keep a single highlight.\n\t\tif (this._inputModality.mostRecentModality === 'touch' || this._cdkMenuItem.disabled) {\n\t\t\treturn;\n\t\t}\n\t\tthis._parentMenu?.setActiveMenuItem(this._cdkMenuItem);\n\t}\n}\n","import { type BooleanInput } from '@angular/cdk/coercion';\nimport { CdkMenuItem, CdkMenuItemCheckbox, CdkMenuItemSelectable } from '@angular/cdk/menu';\nimport { Directive, booleanAttribute, inject, input } from '@angular/core';\nimport { classes } from 'yukit-web/helm/utils';\nimport { HlmDropdownMenuFocusOnHover } from './hlm-dropdown-menu-focus-on-hover';\n\n/** @internal. Use HlmDropdownMenuCheckbox instead. */\n@Directive({\n\tselector: '[hlmDropdownMenuCheckboxCdk]',\n\tproviders: [\n\t\t{ provide: CdkMenuItemCheckbox, useExisting: HlmDropdownMenuCheckboxCdk },\n\t\t{ provide: CdkMenuItemSelectable, useExisting: HlmDropdownMenuCheckboxCdk },\n\t\t{ provide: CdkMenuItem, useExisting: CdkMenuItemSelectable },\n\t],\n})\nexport class HlmDropdownMenuCheckboxCdk extends CdkMenuItemCheckbox {\n\tpublic readonly keepOpen = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n\tpublic override trigger(options?: { keepOpen: boolean }) {\n\t\tsuper.trigger({ ...options, keepOpen: this.keepOpen() });\n\t}\n}\n\n@Directive({\n\tselector: '[hlmDropdownMenuCheckbox],[hlmDropdownMenuCheckboxItem]',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: HlmDropdownMenuCheckboxCdk,\n\t\t\tinputs: ['cdkMenuItemDisabled: disabled', 'cdkMenuItemChecked: checked', 'keepOpen'],\n\t\t\toutputs: ['cdkMenuItemTriggered: triggered'],\n\t\t},\n\t\tHlmDropdownMenuFocusOnHover,\n\t],\n\thost: {\n\t\t'data-slot': 'dropdown-menu-checkbox-item',\n\t\t'[attr.data-disabled]': '_cdkMenuItem.disabled ? \"\" : null',\n\t\t'[attr.data-checked]': '_cdkMenuItem.checked ? \"\" : null',\n\t\t'[attr.data-inset]': 'inset() ? \"\" : null',\n\t},\n})\nexport class HlmDropdownMenuCheckbox {\n\tprotected readonly _cdkMenuItem = inject(HlmDropdownMenuCheckboxCdk);\n\n\tpublic readonly inset = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t\"hover:bg-accent focus:bg-accent hover:text-accent-foreground focus:text-accent-foreground hover:**:text-accent-foreground focus:**:text-accent-foreground gap-1.5 rounded-md py-1 ps-1.5 pe-8 text-sm data-inset:ps-7 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] group/dropdown-menu-checkbox relative flex w-full cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_ng-icon]:pointer-events-none [&_ng-icon]:shrink-0\",\n\t\t);\n\t}\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideCheck } from '@ng-icons/lucide';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Component({\n\tselector: 'hlm-dropdown-menu-checkbox-indicator',\n\timports: [NgIcon],\n\tproviders: [provideIcons({ lucideCheck })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { 'data-slot': 'dropdown-menu-checkbox-item-indicator' },\n\ttemplate: `\n\t\t<ng-icon name=\"lucideCheck\" />\n\t`,\n})\nexport class HlmDropdownMenuCheckboxIndicator {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'absolute end-2 flex items-center justify-center [&_ng-icon]:text-[length:--spacing(4)] pointer-events-none opacity-0 group-data-checked/dropdown-menu-checkbox:opacity-100',\n\t\t);\n\t}\n}\n","import { CdkMenuGroup } from '@angular/cdk/menu';\nimport { Directive } from '@angular/core';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Directive({\n\tselector: '[hlmDropdownMenuGroup],hlm-dropdown-menu-group',\n\thostDirectives: [CdkMenuGroup],\n\thost: { 'data-slot': 'dropdown-menu-group' },\n})\nexport class HlmDropdownMenuGroup {\n\tconstructor() {\n\t\tclasses(() => 'block');\n\t}\n}\n","import { type BooleanInput } from '@angular/cdk/coercion';\nimport { CdkMenuItem } from '@angular/cdk/menu';\nimport { booleanAttribute, Directive, HOST_TAG_NAME, inject, input } from '@angular/core';\nimport { classes } from 'yukit-web/helm/utils';\nimport { HlmDropdownMenuFocusOnHover } from './hlm-dropdown-menu-focus-on-hover';\n\n@Directive({\n\tselector: '[hlmDropdownMenuItem],hlm-dropdown-menu-item',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: CdkMenuItem,\n\t\t\tinputs: ['cdkMenuItemDisabled: disabled'],\n\t\t\toutputs: ['cdkMenuItemTriggered: triggered'],\n\t\t},\n\t\tHlmDropdownMenuFocusOnHover,\n\t],\n\thost: {\n\t\t'data-slot': 'dropdown-menu-item',\n\t\t'[attr.disabled]': '_isButton && disabled() ? \"\" : null',\n\t\t'[attr.data-disabled]': 'disabled() ? \"\" : null',\n\t\t'[attr.data-variant]': 'variant()',\n\t\t'[attr.data-inset]': 'inset() ? \"\" : null',\n\t},\n})\nexport class HlmDropdownMenuItem {\n\tprotected readonly _isButton = inject(HOST_TAG_NAME) === 'button';\n\n\tpublic readonly disabled = input<boolean, BooleanInput>(false, { transform: booleanAttribute });\n\n\tpublic readonly variant = input<'default' | 'destructive'>('default');\n\n\tpublic readonly inset = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t\"hover:bg-accent focus:bg-accent hover:text-accent-foreground focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:hover:bg-destructive/10 data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:hover:bg-destructive/20 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:hover:text-destructive data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[ng-icon]:text-destructive not-data-[variant=destructive]:hover:**:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-1.5 rounded-md px-1.5 py-1 text-sm data-inset:ps-7 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] group/dropdown-menu-item relative flex w-full cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_ng-icon]:pointer-events-none [&_ng-icon]:shrink-0\",\n\t\t);\n\t}\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideChevronRight } from '@ng-icons/lucide';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Component({\n\tselector: 'hlm-dropdown-menu-item-sub-indicator',\n\timports: [NgIcon],\n\tproviders: [provideIcons({ lucideChevronRight })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `\n\t\t<ng-icon name=\"lucideChevronRight\" class=\"text-[length:--spacing(4)] rtl:rotate-180\" />\n\t`,\n})\nexport class HlmDropdownMenuItemSubIndicator {\n\tconstructor() {\n\t\tclasses(() => 'ms-auto flex items-center justify-center');\n\t}\n}\n","import { type BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input } from '@angular/core';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Directive({\n\tselector: '[hlmDropdownMenuLabel],hlm-dropdown-menu-label',\n\thost: {\n\t\t'data-slot': 'dropdown-menu-label',\n\t\t'[attr.data-inset]': 'inset() ? \"\" : null',\n\t},\n})\nexport class HlmDropdownMenuLabel {\n\tpublic readonly inset = input<boolean, BooleanInput>(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground px-1.5 py-1 text-xs font-medium data-inset:ps-7 block');\n\t}\n}\n","import { type BooleanInput } from '@angular/cdk/coercion';\nimport { CdkMenuItem, CdkMenuItemRadio, CdkMenuItemSelectable } from '@angular/cdk/menu';\nimport { Directive, booleanAttribute, inject, input } from '@angular/core';\nimport { classes } from 'yukit-web/helm/utils';\nimport { HlmDropdownMenuFocusOnHover } from './hlm-dropdown-menu-focus-on-hover';\n\n/** @internal. Use HlmDropdownMenuRadio instead. */\n@Directive({\n\tselector: '[hlmDropdownMenuRadioCdk]',\n\tproviders: [\n\t\t{ provide: CdkMenuItemRadio, useExisting: HlmDropdownMenuRadioCdk },\n\t\t{ provide: CdkMenuItemSelectable, useExisting: HlmDropdownMenuRadioCdk },\n\t\t{ provide: CdkMenuItem, useExisting: CdkMenuItemSelectable },\n\t],\n})\nexport class HlmDropdownMenuRadioCdk extends CdkMenuItemRadio {\n\tpublic readonly keepOpen = input<boolean, BooleanInput>(true, { transform: booleanAttribute });\n\n\tpublic override trigger(options?: { keepOpen: boolean }) {\n\t\tsuper.trigger({ ...options, keepOpen: this.keepOpen() });\n\t}\n}\n\n@Directive({\n\tselector: '[hlmDropdownMenuRadio]',\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: HlmDropdownMenuRadioCdk,\n\t\t\tinputs: ['cdkMenuItemDisabled: disabled', 'cdkMenuItemChecked: checked', 'keepOpen'],\n\t\t\toutputs: ['cdkMenuItemTriggered: triggered'],\n\t\t},\n\t\tHlmDropdownMenuFocusOnHover,\n\t],\n\thost: {\n\t\t'data-slot': 'dropdown-menu-radio-item',\n\t\t'[attr.data-disabled]': '_cdkMenuItem.disabled ? \"\" : null',\n\t\t'[attr.data-checked]': '_cdkMenuItem.checked ? \"\" : null',\n\t},\n})\nexport class HlmDropdownMenuRadio {\n\tprotected readonly _cdkMenuItem = inject(HlmDropdownMenuRadioCdk);\n\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t\"hover:bg-accent focus:bg-accent hover:text-accent-foreground focus:text-accent-foreground hover:**:text-accent-foreground focus:**:text-accent-foreground gap-1.5 rounded-md py-1 ps-1.5 pe-8 text-sm data-inset:ps-7 [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)] group/dropdown-menu-radio relative flex w-full cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_ng-icon]:pointer-events-none [&_ng-icon]:shrink-0\",\n\t\t);\n\t}\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideCheck } from '@ng-icons/lucide';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Component({\n\tselector: 'hlm-dropdown-menu-radio-indicator',\n\timports: [NgIcon],\n\tproviders: [provideIcons({ lucideCheck })],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { 'data-slot': 'dropdown-menu-radio-item-indicator' },\n\ttemplate: `\n\t\t<ng-icon name=\"lucideCheck\" />\n\t`,\n})\nexport class HlmDropdownMenuRadioIndicator {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'absolute end-2 flex items-center justify-center [&_ng-icon]:text-[length:--spacing(4)] pointer-events-none opacity-0 group-data-checked/dropdown-menu-radio:opacity-100',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Directive({\n\tselector: '[hlmDropdownMenuSeparator],hlm-dropdown-menu-separator',\n\thost: { 'data-slot': 'dropdown-menu-separator' },\n})\nexport class HlmDropdownMenuSeparator {\n\tconstructor() {\n\t\tclasses(() => 'bg-border -mx-1 my-1 h-px block');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Directive({\n\tselector: '[hlmDropdownMenuShortcut],hlm-dropdown-menu-shortcut',\n\thost: { 'data-slot': 'dropdown-menu-shortcut' },\n})\nexport class HlmDropdownMenuShortcut {\n\tconstructor() {\n\t\tclasses(() => 'text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground ms-auto text-xs tracking-widest');\n\t}\n}\n","import { CdkMenu } from '@angular/cdk/menu';\nimport { Directive, ElementRef, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { deriveMenuSideFromTransformOrigin, MENU_SIDE, type MenuSide } from '@spartan-ng/brain/core';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Directive({\n\tselector: '[hlmDropdownMenuSub],hlm-dropdown-menu-sub',\n\thostDirectives: [CdkMenu],\n\thost: {\n\t\t'data-slot': 'dropdown-menu-sub',\n\t\t'[attr.data-state]': '_state()',\n\t\t'[attr.data-side]': '_side()',\n\t},\n})\nexport class HlmDropdownMenuSub {\n\tprivate readonly _host = inject(CdkMenu);\n\tprivate readonly _elementRef = inject(ElementRef<HTMLElement>);\n\t// The sub-trigger provides its configured side; CDK parents this content's injector under it.\n\tprivate readonly _menuSide = inject(MENU_SIDE, { optional: true });\n\n\tprotected readonly _state = signal('open');\n\tprotected readonly _side = signal<MenuSide>(this._menuSide?.side() ?? 'right');\n\n\tconstructor() {\n\t\tthis.setSideFromTransformOrigin();\n\t\t// this is a best effort, but does not seem to work currently\n\t\t// TODO: figure out a way for us to know the host is about to be closed. might not be possible with CDK\n\t\tthis._host.closed.pipe(takeUntilDestroyed()).subscribe(() => this._state.set('closed'));\n\n\t\tclasses(() => 'motion-safe:data-open:animate-in motion-safe: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 bg-popover text-popover-foreground min-w-24 rounded-lg p-1 shadow-lg ring-1 duration-100 w-auto');\n\t}\n\n\tprivate setSideFromTransformOrigin() {\n\t\tconst side = this._menuSide?.side() ?? 'right';\n\t\t// CDK sets transform-origin on this element synchronously on attach; read it next tick and derive side\n\t\tsetTimeout(() => {\n\t\t\tthis._side.set(deriveMenuSideFromTransformOrigin(this._elementRef.nativeElement.style.transformOrigin, side));\n\t\t});\n\t}\n}\n","import { InjectionToken, type ValueProvider, inject } from '@angular/core';\nimport { type MenuAlign, type MenuSide } from '@spartan-ng/brain/core';\n\nexport interface HlmDropdownMenuConfig {\n\talign: MenuAlign;\n\tside: MenuSide;\n}\n\nconst defaultConfig: HlmDropdownMenuConfig = {\n\talign: 'start',\n\tside: 'bottom',\n};\n\nconst HlmDropdownMenuConfigToken = new InjectionToken<HlmDropdownMenuConfig>('HlmDropdownMenuConfig');\n\nexport function provideHlmDropdownMenuConfig(config: Partial<HlmDropdownMenuConfig>): ValueProvider {\n\treturn { provide: HlmDropdownMenuConfigToken, useValue: { ...defaultConfig, ...config } };\n}\n\nexport function injectHlmDropdownMenuConfig(): HlmDropdownMenuConfig {\n\treturn inject(HlmDropdownMenuConfigToken, { optional: true }) ?? defaultConfig;\n}\n","import { CdkMenuTrigger } from '@angular/cdk/menu';\nimport { computed, Directive, effect, forwardRef, inject, input } from '@angular/core';\nimport { createMenuPosition, MENU_SIDE, type MenuAlign, type MenuSide } from '@spartan-ng/brain/core';\nimport { classes } from 'yukit-web/helm/utils';\nimport { injectHlmDropdownMenuConfig } from './hlm-dropdown-menu-token';\n\n@Directive({\n\tselector: '[hlmDropdownMenuSubTrigger]',\n\tproviders: [{ provide: MENU_SIDE, useExisting: forwardRef(() => HlmDropdownMenuSubTrigger) }],\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: CdkMenuTrigger,\n\t\t\tinputs: ['cdkMenuTriggerFor: hlmDropdownMenuSubTrigger', 'cdkMenuTriggerData: hlmDropdownMenuTriggerData'],\n\t\t\toutputs: ['cdkMenuOpened: hlmDropdownMenuSubOpened', 'cdkMenuClosed: hlmDropdownMenuSubClosed'],\n\t\t},\n\t],\n\thost: { 'data-slot': 'dropdown-menu-sub-trigger' },\n})\nexport class HlmDropdownMenuSubTrigger {\n\tprivate readonly _cdkTrigger = inject(CdkMenuTrigger, { host: true });\n\tprivate readonly _config = injectHlmDropdownMenuConfig();\n\n\tpublic readonly align = input<MenuAlign>(this._config.align);\n\tpublic readonly side = input<MenuSide>(this._config.side);\n\n\tprivate readonly _menuPosition = computed(() => createMenuPosition(this.align(), this.side()));\n\n\tconstructor() {\n\t\t// CDK sets transform-origin on the submenu content from the resolved position; the content reads it\n\t\t// to animate from the anchored corner and to derive its data-side. Cast tolerates @angular/cdk < 21.2\n\t\t// (we still support >=21.0), where the property is absent and the assignment is a harmless no-op.\n\t\t(this._cdkTrigger as { transformOriginSelector?: string }).transformOriginSelector =\n\t\t\t'[data-slot=\"dropdown-menu-sub\"]';\n\n\t\teffect(() => {\n\t\t\tthis._cdkTrigger.menuPosition = this._menuPosition();\n\t\t});\n\n\t\tclasses(() => 'aria-expanded:bg-accent aria-expanded:text-accent-foreground');\n\t}\n}\n","import { CdkMenuTrigger } from '@angular/cdk/menu';\nimport { computed, Directive, effect, forwardRef, inject, input } from '@angular/core';\nimport { createMenuPosition, MENU_SIDE, type MenuAlign, type MenuSide } from '@spartan-ng/brain/core';\nimport { injectHlmDropdownMenuConfig } from './hlm-dropdown-menu-token';\n\n@Directive({\n\tselector: '[hlmDropdownMenuTrigger]',\n\tproviders: [{ provide: MENU_SIDE, useExisting: forwardRef(() => HlmDropdownMenuTrigger) }],\n\thostDirectives: [\n\t\t{\n\t\t\tdirective: CdkMenuTrigger,\n\t\t\tinputs: ['cdkMenuTriggerFor: hlmDropdownMenuTrigger', 'cdkMenuTriggerData: hlmDropdownMenuTriggerData'],\n\t\t\toutputs: ['cdkMenuOpened: hlmDropdownMenuOpened', 'cdkMenuClosed: hlmDropdownMenuClosed'],\n\t\t},\n\t],\n\thost: { 'data-slot': 'dropdown-menu-trigger' },\n})\nexport class HlmDropdownMenuTrigger {\n\tprivate readonly _cdkTrigger = inject(CdkMenuTrigger, { host: true });\n\tprivate readonly _config = injectHlmDropdownMenuConfig();\n\n\tpublic readonly align = input<MenuAlign>(this._config.align);\n\tpublic readonly side = input<MenuSide>(this._config.side);\n\n\tprivate readonly _menuPosition = computed(() => createMenuPosition(this.align(), this.side()));\n\n\tconstructor() {\n\t\t// CDK sets transform-origin on the menu content from the resolved position; the content reads it to\n\t\t// animate from the anchored corner and to derive its data-side. Cast tolerates @angular/cdk < 21.2\n\t\t// (we still support >=21.0), where the property is absent and the assignment is a harmless no-op.\n\t\t(this._cdkTrigger as { transformOriginSelector?: string }).transformOriginSelector = '[data-slot=\"dropdown-menu\"]';\n\n\t\teffect(() => {\n\t\t\tthis._cdkTrigger.menuPosition = this._menuPosition();\n\t\t});\n\t}\n}\n","import { HlmDropdownMenu } from './lib/hlm-dropdown-menu';\nimport { HlmDropdownMenuCheckbox } from './lib/hlm-dropdown-menu-checkbox';\nimport { HlmDropdownMenuCheckboxIndicator } from './lib/hlm-dropdown-menu-checkbox-indicator';\nimport { HlmDropdownMenuGroup } from './lib/hlm-dropdown-menu-group';\nimport { HlmDropdownMenuItem } from './lib/hlm-dropdown-menu-item';\nimport { HlmDropdownMenuItemSubIndicator } from './lib/hlm-dropdown-menu-item-sub-indicator';\nimport { HlmDropdownMenuLabel } from './lib/hlm-dropdown-menu-label';\nimport { HlmDropdownMenuRadio } from './lib/hlm-dropdown-menu-radio';\nimport { HlmDropdownMenuRadioIndicator } from './lib/hlm-dropdown-menu-radio-indicator';\nimport { HlmDropdownMenuSeparator } from './lib/hlm-dropdown-menu-separator';\nimport { HlmDropdownMenuShortcut } from './lib/hlm-dropdown-menu-shortcut';\nimport { HlmDropdownMenuSub } from './lib/hlm-dropdown-menu-sub';\nimport { HlmDropdownMenuSubTrigger } from './lib/hlm-dropdown-menu-sub-trigger';\n\nimport { HlmDropdownMenuTrigger } from './lib/hlm-dropdown-menu-trigger';\n\nexport * from './lib/hlm-dropdown-menu';\nexport * from './lib/hlm-dropdown-menu-checkbox';\nexport * from './lib/hlm-dropdown-menu-checkbox-indicator';\nexport * from './lib/hlm-dropdown-menu-focus-on-hover';\nexport * from './lib/hlm-dropdown-menu-group';\nexport * from './lib/hlm-dropdown-menu-item';\nexport * from './lib/hlm-dropdown-menu-item-sub-indicator';\nexport * from './lib/hlm-dropdown-menu-label';\nexport * from './lib/hlm-dropdown-menu-radio';\nexport * from './lib/hlm-dropdown-menu-radio-indicator';\nexport * from './lib/hlm-dropdown-menu-separator';\nexport * from './lib/hlm-dropdown-menu-shortcut';\nexport * from './lib/hlm-dropdown-menu-sub';\nexport * from './lib/hlm-dropdown-menu-sub-trigger';\nexport * from './lib/hlm-dropdown-menu-token';\nexport * from './lib/hlm-dropdown-menu-trigger';\n\nexport const HlmDropdownMenuImports = [\n\tHlmDropdownMenu,\n\tHlmDropdownMenuCheckbox,\n\tHlmDropdownMenuCheckboxIndicator,\n\tHlmDropdownMenuGroup,\n\tHlmDropdownMenuItem,\n\tHlmDropdownMenuItemSubIndicator,\n\tHlmDropdownMenuLabel,\n\tHlmDropdownMenuRadio,\n\tHlmDropdownMenuRadioIndicator,\n\tHlmDropdownMenuSeparator,\n\tHlmDropdownMenuShortcut,\n\tHlmDropdownMenuSub,\n\tHlmDropdownMenuSubTrigger,\n\tHlmDropdownMenuTrigger,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.HlmDropdownMenuFocusOnHover","i2.HlmDropdownMenuFocusOnHover"],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Directive, input } from '@angular/core';
3
+ import { classes } from 'yukit-web/helm/utils';
4
+ import { cva } from 'class-variance-authority';
5
+
6
+ class HlmEmpty {
7
+ constructor() {
8
+ classes(() => 'gap-4 rounded-xl border-dashed p-6 flex w-full min-w-0 flex-1 flex-col items-center justify-center text-center text-balance');
9
+ }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmEmpty, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
11
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.8", type: HlmEmpty, isStandalone: true, selector: "[hlmEmpty],hlm-empty", host: { attributes: { "data-slot": "empty" } }, ngImport: i0 }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmEmpty, decorators: [{
14
+ type: Directive,
15
+ args: [{
16
+ selector: '[hlmEmpty],hlm-empty',
17
+ host: { 'data-slot': 'empty' },
18
+ }]
19
+ }], ctorParameters: () => [] });
20
+
21
+ class HlmEmptyContent {
22
+ constructor() {
23
+ classes(() => 'gap-2.5 text-sm flex w-full max-w-sm min-w-0 flex-col items-center text-balance');
24
+ }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmEmptyContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
26
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.8", type: HlmEmptyContent, isStandalone: true, selector: "[hlmEmptyContent],hlm-empty-content", host: { attributes: { "data-slot": "empty-content" } }, ngImport: i0 }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmEmptyContent, decorators: [{
29
+ type: Directive,
30
+ args: [{
31
+ selector: '[hlmEmptyContent],hlm-empty-content',
32
+ host: { 'data-slot': 'empty-content' },
33
+ }]
34
+ }], ctorParameters: () => [] });
35
+
36
+ class HlmEmptyDescription {
37
+ constructor() {
38
+ classes(() => 'text-sm/relaxed text-muted-foreground [&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4');
39
+ }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmEmptyDescription, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
41
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.8", type: HlmEmptyDescription, isStandalone: true, selector: "[hlmEmptyDescription]", host: { attributes: { "data-slot": "empty-description" } }, ngImport: i0 }); }
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmEmptyDescription, decorators: [{
44
+ type: Directive,
45
+ args: [{
46
+ selector: '[hlmEmptyDescription]',
47
+ host: { 'data-slot': 'empty-description' },
48
+ }]
49
+ }], ctorParameters: () => [] });
50
+
51
+ class HlmEmptyHeader {
52
+ constructor() {
53
+ classes(() => 'gap-2 flex max-w-sm flex-col items-center');
54
+ }
55
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmEmptyHeader, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
56
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.8", type: HlmEmptyHeader, isStandalone: true, selector: "[hlmEmptyHeader],hlm-empty-header", host: { attributes: { "data-slot": "empty-header" } }, ngImport: i0 }); }
57
+ }
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmEmptyHeader, decorators: [{
59
+ type: Directive,
60
+ args: [{
61
+ selector: '[hlmEmptyHeader],hlm-empty-header',
62
+ host: { 'data-slot': 'empty-header' },
63
+ }]
64
+ }], ctorParameters: () => [] });
65
+
66
+ const emptyMediaVariants = cva('mb-2 flex shrink-0 items-center justify-center [&_ng-icon]:pointer-events-none [&_ng-icon]:shrink-0', {
67
+ variants: {
68
+ variant: {
69
+ default: 'bg-transparent',
70
+ icon: "bg-muted text-foreground flex size-8 shrink-0 items-center justify-center rounded-lg [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)]",
71
+ },
72
+ },
73
+ defaultVariants: {
74
+ variant: 'default',
75
+ },
76
+ });
77
+ class HlmEmptyMedia {
78
+ constructor() {
79
+ this.variant = input(...(ngDevMode ? [undefined, { debugName: "variant" }] : /* istanbul ignore next */ []));
80
+ classes(() => emptyMediaVariants({ variant: this.variant() }));
81
+ }
82
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmEmptyMedia, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
83
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.8", type: HlmEmptyMedia, isStandalone: true, selector: "[hlmEmptyMedia],hlm-empty-media", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-slot": "empty-media" }, properties: { "attr.data-variant": "variant()" } }, ngImport: i0 }); }
84
+ }
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmEmptyMedia, decorators: [{
86
+ type: Directive,
87
+ args: [{
88
+ selector: '[hlmEmptyMedia],hlm-empty-media',
89
+ host: {
90
+ 'data-slot': 'empty-media',
91
+ '[attr.data-variant]': 'variant()',
92
+ },
93
+ }]
94
+ }], ctorParameters: () => [], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }] } });
95
+
96
+ class HlmEmptyTitle {
97
+ constructor() {
98
+ classes(() => 'text-sm font-medium tracking-tight');
99
+ }
100
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmEmptyTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
101
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.8", type: HlmEmptyTitle, isStandalone: true, selector: "[hlmEmptyTitle]", host: { attributes: { "data-slot": "empty-title" } }, ngImport: i0 }); }
102
+ }
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmEmptyTitle, decorators: [{
104
+ type: Directive,
105
+ args: [{
106
+ selector: '[hlmEmptyTitle]',
107
+ host: { 'data-slot': 'empty-title' },
108
+ }]
109
+ }], ctorParameters: () => [] });
110
+
111
+ const HlmEmptyImports = [
112
+ HlmEmpty,
113
+ HlmEmptyContent,
114
+ HlmEmptyDescription,
115
+ HlmEmptyHeader,
116
+ HlmEmptyTitle,
117
+ HlmEmptyMedia,
118
+ ];
119
+
120
+ /**
121
+ * Generated bundle index. Do not edit.
122
+ */
123
+
124
+ export { HlmEmpty, HlmEmptyContent, HlmEmptyDescription, HlmEmptyHeader, HlmEmptyImports, HlmEmptyMedia, HlmEmptyTitle };
125
+ //# sourceMappingURL=yukit-web-helm-empty.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yukit-web-helm-empty.mjs","sources":["../../../projects/yukit-web/helm/empty/src/lib/hlm-empty.ts","../../../projects/yukit-web/helm/empty/src/lib/hlm-empty-content.ts","../../../projects/yukit-web/helm/empty/src/lib/hlm-empty-description.ts","../../../projects/yukit-web/helm/empty/src/lib/hlm-empty-header.ts","../../../projects/yukit-web/helm/empty/src/lib/hlm-empty-media.ts","../../../projects/yukit-web/helm/empty/src/lib/hlm-empty-title.ts","../../../projects/yukit-web/helm/empty/src/index.ts","../../../projects/yukit-web/helm/empty/src/yukit-web-helm-empty.ts"],"sourcesContent":["import { Directive } from '@angular/core';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Directive({\n\tselector: '[hlmEmpty],hlm-empty',\n\thost: { 'data-slot': 'empty' },\n})\nexport class HlmEmpty {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() => 'gap-4 rounded-xl border-dashed p-6 flex w-full min-w-0 flex-1 flex-col items-center justify-center text-center text-balance',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Directive({\n\tselector: '[hlmEmptyContent],hlm-empty-content',\n\thost: { 'data-slot': 'empty-content' },\n})\nexport class HlmEmptyContent {\n\tconstructor() {\n\t\tclasses(() => 'gap-2.5 text-sm flex w-full max-w-sm min-w-0 flex-col items-center text-balance');\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Directive({\n\tselector: '[hlmEmptyDescription]',\n\thost: { 'data-slot': 'empty-description' },\n})\nexport class HlmEmptyDescription {\n\tconstructor() {\n\t\tclasses(\n\t\t\t() =>\n\t\t\t\t'text-sm/relaxed text-muted-foreground [&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4',\n\t\t);\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Directive({\n\tselector: '[hlmEmptyHeader],hlm-empty-header',\n\thost: { 'data-slot': 'empty-header' },\n})\nexport class HlmEmptyHeader {\n\tconstructor() {\n\t\tclasses(() => 'gap-2 flex max-w-sm flex-col items-center');\n\t}\n}\n","import { Directive, input } from '@angular/core';\nimport { classes } from 'yukit-web/helm/utils';\nimport { cva, VariantProps } from 'class-variance-authority';\n\nconst emptyMediaVariants = cva(\n\t'mb-2 flex shrink-0 items-center justify-center [&_ng-icon]:pointer-events-none [&_ng-icon]:shrink-0',\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: 'bg-transparent',\n\t\t\t\ticon: \"bg-muted text-foreground flex size-8 shrink-0 items-center justify-center rounded-lg [&_ng-icon:not([class*='text-'])]:text-[length:--spacing(4)]\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: 'default',\n\t\t},\n\t},\n);\n\nexport type EmptyMediaVariants = VariantProps<typeof emptyMediaVariants>;\n\n@Directive({\n\tselector: '[hlmEmptyMedia],hlm-empty-media',\n\thost: {\n\t\t'data-slot': 'empty-media',\n\t\t'[attr.data-variant]': 'variant()',\n\t},\n})\nexport class HlmEmptyMedia {\n\tpublic readonly variant = input<EmptyMediaVariants['variant']>();\n\n\tconstructor() {\n\t\tclasses(() => emptyMediaVariants({ variant: this.variant() }));\n\t}\n}\n","import { Directive } from '@angular/core';\nimport { classes } from 'yukit-web/helm/utils';\n\n@Directive({\n\tselector: '[hlmEmptyTitle]',\n\thost: { 'data-slot': 'empty-title' },\n})\nexport class HlmEmptyTitle {\n\tconstructor() {\n\t\tclasses(() => 'text-sm font-medium tracking-tight');\n\t}\n}\n","import { HlmEmpty } from './lib/hlm-empty';\nimport { HlmEmptyContent } from './lib/hlm-empty-content';\nimport { HlmEmptyDescription } from './lib/hlm-empty-description';\nimport { HlmEmptyHeader } from './lib/hlm-empty-header';\nimport { HlmEmptyMedia } from './lib/hlm-empty-media';\nimport { HlmEmptyTitle } from './lib/hlm-empty-title';\n\nexport * from './lib/hlm-empty';\nexport * from './lib/hlm-empty-content';\nexport * from './lib/hlm-empty-description';\nexport * from './lib/hlm-empty-header';\nexport * from './lib/hlm-empty-media';\nexport * from './lib/hlm-empty-title';\n\nexport const HlmEmptyImports = [\n\tHlmEmpty,\n\tHlmEmptyContent,\n\tHlmEmptyDescription,\n\tHlmEmptyHeader,\n\tHlmEmptyTitle,\n\tHlmEmptyMedia,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,325 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, Directive, inject, effect, booleanAttribute, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import * as i1 from '@spartan-ng/brain/field';
4
+ import { BrnField, BrnFieldA11yService } from '@spartan-ng/brain/field';
5
+ import { classes } from 'yukit-web/helm/utils';
6
+ import { cva } from 'class-variance-authority';
7
+ import * as i1$1 from 'yukit-web/helm/label';
8
+ import { HlmLabel } from 'yukit-web/helm/label';
9
+ import { HlmSeparator } from 'yukit-web/helm/separator';
10
+
11
+ const fieldVariants = cva('data-[matches-spartan-invalid=true]:text-destructive gap-2 group/field flex w-full', {
12
+ variants: {
13
+ orientation: {
14
+ vertical: 'flex-col *:w-full [&>.sr-only]:w-auto',
15
+ horizontal: [
16
+ 'flex-row items-center',
17
+ '*:data-[slot=field-label]:flex-auto',
18
+ 'has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',
19
+ ],
20
+ responsive: [
21
+ 'flex-col *:w-full @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto [&>.sr-only]:w-auto',
22
+ '@md/field-group:*:data-[slot=field-label]:flex-auto',
23
+ '@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',
24
+ ],
25
+ },
26
+ },
27
+ defaultVariants: {
28
+ orientation: 'vertical',
29
+ },
30
+ });
31
+ class HlmField {
32
+ constructor() {
33
+ this.orientation = input('vertical', ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
34
+ classes(() => fieldVariants({ orientation: this.orientation() }));
35
+ }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmField, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
37
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.8", type: HlmField, isStandalone: true, selector: "[hlmField],hlm-field", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "group", "data-slot": "field" }, properties: { "attr.data-orientation": "orientation()" } }, hostDirectives: [{ directive: i1.BrnField, inputs: ["data-invalid", "data-invalid", "forceInvalid", "forceInvalid"] }], ngImport: i0 }); }
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmField, decorators: [{
40
+ type: Directive,
41
+ args: [{
42
+ selector: '[hlmField],hlm-field',
43
+ hostDirectives: [{ directive: BrnField, inputs: ['data-invalid', 'forceInvalid'] }],
44
+ host: {
45
+ role: 'group',
46
+ 'data-slot': 'field',
47
+ '[attr.data-orientation]': 'orientation()',
48
+ },
49
+ }]
50
+ }], ctorParameters: () => [], propDecorators: { orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }] } });
51
+
52
+ class HlmFieldContent {
53
+ constructor() {
54
+ classes(() => 'gap-0.5 group/field-content flex flex-1 flex-col leading-snug');
55
+ }
56
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmFieldContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
57
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.8", type: HlmFieldContent, isStandalone: true, selector: "[hlmFieldContent],hlm-field-content", host: { attributes: { "data-slot": "field-content" } }, ngImport: i0 }); }
58
+ }
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmFieldContent, decorators: [{
60
+ type: Directive,
61
+ args: [{
62
+ selector: '[hlmFieldContent],hlm-field-content',
63
+ host: { 'data-slot': 'field-content' },
64
+ }]
65
+ }], ctorParameters: () => [] });
66
+
67
+ class HlmFieldDescription {
68
+ static { this._id = 0; }
69
+ constructor() {
70
+ this._a11y = inject(BrnFieldA11yService, { optional: true, host: true });
71
+ this.id = input(`hlm-field-description-${HlmFieldDescription._id++}`, ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
72
+ this._cleanup = this._a11y
73
+ ? effect(() => {
74
+ const a11y = this._a11y;
75
+ if (!a11y)
76
+ return;
77
+ const id = this.id();
78
+ if (this._registeredId && this._registeredId !== id) {
79
+ a11y.unregisterDescription(this._registeredId);
80
+ }
81
+ if (this._registeredId !== id) {
82
+ a11y.registerDescription(id);
83
+ this._registeredId = id;
84
+ }
85
+ })
86
+ : null;
87
+ classes(() => [
88
+ 'text-muted-foreground text-start text-sm [[data-variant=legend]+&]:-mt-1.5 leading-normal font-normal group-has-data-horizontal/field:text-balance',
89
+ 'last:mt-0 nth-last-2:-mt-1',
90
+ '[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4',
91
+ ]);
92
+ }
93
+ ngOnDestroy() {
94
+ this._cleanup?.destroy();
95
+ if (this._registeredId) {
96
+ this._a11y?.unregisterDescription(this._registeredId);
97
+ }
98
+ }
99
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmFieldDescription, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
100
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.8", type: HlmFieldDescription, isStandalone: true, selector: "[hlmFieldDescription],hlm-field-description", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-slot": "field-description" }, properties: { "attr.id": "id()" } }, ngImport: i0 }); }
101
+ }
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmFieldDescription, decorators: [{
103
+ type: Directive,
104
+ args: [{
105
+ selector: '[hlmFieldDescription],hlm-field-description',
106
+ host: {
107
+ 'data-slot': 'field-description',
108
+ '[attr.id]': 'id()',
109
+ },
110
+ }]
111
+ }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }] } });
112
+
113
+ class HlmFieldError {
114
+ static { this._id = 0; }
115
+ constructor() {
116
+ this._field = inject(BrnField, { optional: true });
117
+ this._a11y = inject(BrnFieldA11yService, { optional: true, host: true });
118
+ this._hasParentField = !!this._field;
119
+ /** The unique ID for the field error. If none is supplied, it will be auto-generated. */
120
+ this.id = input(`hlm-field-error-${HlmFieldError._id++}`, ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
121
+ /**
122
+ * The name of the specific validator error key to match (e.g. 'required').
123
+ * When omitted, the error is shown if any validation error is present.
124
+ */
125
+ this.validator = input(...(ngDevMode ? [undefined, { debugName: "validator" }] : /* istanbul ignore next */ []));
126
+ /** Forces the error message to be visible regardless of the control's validation state. */
127
+ this.forceShow = input(false, { ...(ngDevMode ? { debugName: "forceShow" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
128
+ this._display = computed(() => !this._hasParentField || this.forceShow() || this._hasError(), ...(ngDevMode ? [{ debugName: "_display" }] : /* istanbul ignore next */ []));
129
+ this._hasError = computed(() => {
130
+ const errors = this._field?.errors();
131
+ if (!errors)
132
+ return false;
133
+ const validator = this.validator();
134
+ const spartanInvalid = this._field?.controlState()?.spartanInvalid;
135
+ if (!spartanInvalid)
136
+ return false;
137
+ return validator ? validator in errors : Object.keys(errors).length > 0;
138
+ }, ...(ngDevMode ? [{ debugName: "_hasError" }] : /* istanbul ignore next */ []));
139
+ this._cleanup = this._a11y
140
+ ? effect(() => {
141
+ const a11y = this._a11y;
142
+ if (!a11y)
143
+ return;
144
+ const id = this.id();
145
+ const hasError = this._hasError();
146
+ if (this._registeredId && (this._registeredId !== id || !hasError)) {
147
+ a11y.unregisterError(this._registeredId);
148
+ this._registeredId = undefined;
149
+ }
150
+ if (hasError && this._registeredId !== id) {
151
+ a11y.registerError(id);
152
+ this._registeredId = id;
153
+ }
154
+ })
155
+ : null;
156
+ classes(() => 'text-destructive text-sm font-normal');
157
+ }
158
+ ngOnDestroy() {
159
+ this._cleanup?.destroy();
160
+ if (this._registeredId) {
161
+ this._a11y?.unregisterError(this._registeredId);
162
+ }
163
+ }
164
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmFieldError, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
165
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: HlmFieldError, isStandalone: true, selector: "hlm-field-error", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, validator: { classPropertyName: "validator", publicName: "validator", isSignal: true, isRequired: false, transformFunction: null }, forceShow: { classPropertyName: "forceShow", publicName: "forceShow", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "alert", "data-slot": "field-error" }, properties: { "attr.id": "id()", "hidden": "!_display()" } }, ngImport: i0, template: `
166
+ @if (_display()) {
167
+ <ng-content />
168
+ }
169
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
170
+ }
171
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmFieldError, decorators: [{
172
+ type: Component,
173
+ args: [{
174
+ selector: 'hlm-field-error',
175
+ changeDetection: ChangeDetectionStrategy.OnPush,
176
+ host: {
177
+ role: 'alert',
178
+ 'data-slot': 'field-error',
179
+ '[attr.id]': 'id()',
180
+ '[hidden]': '!_display()',
181
+ },
182
+ template: `
183
+ @if (_display()) {
184
+ <ng-content />
185
+ }
186
+ `,
187
+ }]
188
+ }], ctorParameters: () => [], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], validator: [{ type: i0.Input, args: [{ isSignal: true, alias: "validator", required: false }] }], forceShow: [{ type: i0.Input, args: [{ isSignal: true, alias: "forceShow", required: false }] }] } });
189
+
190
+ class HlmFieldGroup {
191
+ constructor() {
192
+ classes(() => 'gap-5 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4 group/field-group @container/field-group flex w-full flex-col');
193
+ }
194
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmFieldGroup, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
195
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.8", type: HlmFieldGroup, isStandalone: true, selector: "[hlmFieldGroup],hlm-field-group", host: { attributes: { "data-slot": "field-group" } }, ngImport: i0 }); }
196
+ }
197
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmFieldGroup, decorators: [{
198
+ type: Directive,
199
+ args: [{
200
+ selector: '[hlmFieldGroup],hlm-field-group',
201
+ host: { 'data-slot': 'field-group' },
202
+ }]
203
+ }], ctorParameters: () => [] });
204
+
205
+ class HlmFieldLabel {
206
+ constructor() {
207
+ classes(() => [
208
+ 'has-data-checked:bg-primary/5 has-data-checked:border-primary/30 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10 gap-2 leading-snug group-data-[disabled=true]/field:opacity-50 has-[>[data-slot=field]]:rounded-lg has-[>[data-slot=field]]:border *:data-[slot=field]:p-2.5 group/field-label peer/field-label flex w-fit',
209
+ 'has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col',
210
+ ]);
211
+ }
212
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmFieldLabel, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
213
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.8", type: HlmFieldLabel, isStandalone: true, selector: "[hlmFieldLabel],hlm-field-label", host: { attributes: { "data-slot": "field-label" } }, hostDirectives: [{ directive: i1$1.HlmLabel }], ngImport: i0 }); }
214
+ }
215
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmFieldLabel, decorators: [{
216
+ type: Directive,
217
+ args: [{
218
+ selector: '[hlmFieldLabel],hlm-field-label',
219
+ hostDirectives: [HlmLabel],
220
+ host: { 'data-slot': 'field-label' },
221
+ }]
222
+ }], ctorParameters: () => [] });
223
+
224
+ class HlmFieldLegend {
225
+ constructor() {
226
+ this.variant = input('legend', ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
227
+ classes(() => 'mb-1.5 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base');
228
+ }
229
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmFieldLegend, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
230
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.8", type: HlmFieldLegend, isStandalone: true, selector: "legend[hlmFieldLegend]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-slot": "field-legend" }, properties: { "attr.data-variant": "variant()" } }, ngImport: i0 }); }
231
+ }
232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmFieldLegend, decorators: [{
233
+ type: Directive,
234
+ args: [{
235
+ selector: 'legend[hlmFieldLegend]',
236
+ host: {
237
+ 'data-slot': 'field-legend',
238
+ '[attr.data-variant]': 'variant()',
239
+ },
240
+ }]
241
+ }], ctorParameters: () => [], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }] } });
242
+
243
+ class HlmFieldSeparator {
244
+ constructor() {
245
+ classes(() => '-my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2 relative');
246
+ }
247
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmFieldSeparator, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
248
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: HlmFieldSeparator, isStandalone: true, selector: "hlm-field-separator", host: { attributes: { "data-slot": "field-separator" } }, ngImport: i0, template: `
249
+ <hlm-separator class="absolute inset-0 top-1/2" />
250
+ <span
251
+ data-slot="field-separator-content"
252
+ class="text-muted-foreground px-2 bg-background relative mx-auto block w-fit"
253
+ >
254
+ <ng-content />
255
+ </span>
256
+ `, isInline: true, dependencies: [{ kind: "directive", type: HlmSeparator, selector: "[hlmSeparator],hlm-separator" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
257
+ }
258
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmFieldSeparator, decorators: [{
259
+ type: Component,
260
+ args: [{
261
+ selector: 'hlm-field-separator',
262
+ imports: [HlmSeparator],
263
+ changeDetection: ChangeDetectionStrategy.OnPush,
264
+ host: { 'data-slot': 'field-separator' },
265
+ template: `
266
+ <hlm-separator class="absolute inset-0 top-1/2" />
267
+ <span
268
+ data-slot="field-separator-content"
269
+ class="text-muted-foreground px-2 bg-background relative mx-auto block w-fit"
270
+ >
271
+ <ng-content />
272
+ </span>
273
+ `,
274
+ }]
275
+ }], ctorParameters: () => [] });
276
+
277
+ class HlmFieldSet {
278
+ constructor() {
279
+ classes(() => 'gap-4 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3 flex flex-col');
280
+ }
281
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmFieldSet, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
282
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.8", type: HlmFieldSet, isStandalone: true, selector: "fieldset[hlmFieldSet]", host: { attributes: { "data-slot": "field-set" } }, ngImport: i0 }); }
283
+ }
284
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmFieldSet, decorators: [{
285
+ type: Directive,
286
+ args: [{
287
+ selector: 'fieldset[hlmFieldSet]',
288
+ host: { 'data-slot': 'field-set' },
289
+ }]
290
+ }], ctorParameters: () => [] });
291
+
292
+ class HlmFieldTitle {
293
+ constructor() {
294
+ classes(() => 'gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50 flex w-fit items-center');
295
+ }
296
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmFieldTitle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
297
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.8", type: HlmFieldTitle, isStandalone: true, selector: "[hlmFieldTitle],hlm-field-title", host: { attributes: { "data-slot": "field-label" } }, ngImport: i0 }); }
298
+ }
299
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: HlmFieldTitle, decorators: [{
300
+ type: Directive,
301
+ args: [{
302
+ selector: '[hlmFieldTitle],hlm-field-title',
303
+ host: { 'data-slot': 'field-label' },
304
+ }]
305
+ }], ctorParameters: () => [] });
306
+
307
+ const HlmFieldImports = [
308
+ HlmField,
309
+ HlmFieldContent,
310
+ HlmFieldDescription,
311
+ HlmFieldError,
312
+ HlmFieldGroup,
313
+ HlmFieldLabel,
314
+ HlmFieldLegend,
315
+ HlmFieldSeparator,
316
+ HlmFieldSet,
317
+ HlmFieldTitle,
318
+ ];
319
+
320
+ /**
321
+ * Generated bundle index. Do not edit.
322
+ */
323
+
324
+ export { HlmField, HlmFieldContent, HlmFieldDescription, HlmFieldError, HlmFieldGroup, HlmFieldImports, HlmFieldLabel, HlmFieldLegend, HlmFieldSeparator, HlmFieldSet, HlmFieldTitle };
325
+ //# sourceMappingURL=yukit-web-helm-field.mjs.map