@blueprint-platform/components 0.0.0-stage → 0.2.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 (434) hide show
  1. package/README.md +10 -2
  2. package/dist/generators/ui/files/shared/ui/accordion/src/index.ts +16 -0
  3. package/dist/generators/ui/files/shared/ui/accordion/src/lib/hlm-accordion-content.ts +27 -0
  4. package/dist/generators/ui/files/shared/ui/accordion/src/lib/hlm-accordion-item.ts +22 -0
  5. package/dist/generators/ui/files/shared/ui/accordion/src/lib/hlm-accordion-trigger.ts +40 -0
  6. package/dist/generators/ui/files/shared/ui/accordion/src/lib/hlm-accordion.ts +16 -0
  7. package/dist/generators/ui/files/shared/ui/alert/src/index.ts +16 -0
  8. package/dist/generators/ui/files/shared/ui/alert/src/lib/hlm-alert-action.ts +14 -0
  9. package/dist/generators/ui/files/shared/ui/alert/src/lib/hlm-alert-description.ts +17 -0
  10. package/dist/generators/ui/files/shared/ui/alert/src/lib/hlm-alert-title.ts +17 -0
  11. package/dist/generators/ui/files/shared/ui/alert/src/lib/hlm-alert.ts +36 -0
  12. package/dist/generators/ui/files/shared/ui/alert-dialog/src/index.ts +40 -0
  13. package/dist/generators/ui/files/shared/ui/alert-dialog/src/lib/hlm-alert-dialog-action.ts +11 -0
  14. package/dist/generators/ui/files/shared/ui/alert-dialog/src/lib/hlm-alert-dialog-cancel.ts +13 -0
  15. package/dist/generators/ui/files/shared/ui/alert-dialog/src/lib/hlm-alert-dialog-content.ts +25 -0
  16. package/dist/generators/ui/files/shared/ui/alert-dialog/src/lib/hlm-alert-dialog-description.ts +17 -0
  17. package/dist/generators/ui/files/shared/ui/alert-dialog/src/lib/hlm-alert-dialog-footer.ts +15 -0
  18. package/dist/generators/ui/files/shared/ui/alert-dialog/src/lib/hlm-alert-dialog-header.ts +15 -0
  19. package/dist/generators/ui/files/shared/ui/alert-dialog/src/lib/hlm-alert-dialog-media.ts +15 -0
  20. package/dist/generators/ui/files/shared/ui/alert-dialog/src/lib/hlm-alert-dialog-overlay.ts +28 -0
  21. package/dist/generators/ui/files/shared/ui/alert-dialog/src/lib/hlm-alert-dialog-portal.ts +8 -0
  22. package/dist/generators/ui/files/shared/ui/alert-dialog/src/lib/hlm-alert-dialog-title.ts +17 -0
  23. package/dist/generators/ui/files/shared/ui/alert-dialog/src/lib/hlm-alert-dialog-trigger.ts +14 -0
  24. package/dist/generators/ui/files/shared/ui/alert-dialog/src/lib/hlm-alert-dialog.ts +25 -0
  25. package/dist/generators/ui/files/shared/ui/aspect-ratio/src/index.ts +5 -0
  26. package/dist/generators/ui/files/shared/ui/aspect-ratio/src/lib/hlm-aspect-ratio.ts +35 -0
  27. package/dist/generators/ui/files/shared/ui/attachment/src/index.ts +31 -0
  28. package/dist/generators/ui/files/shared/ui/attachment/src/lib/hlm-attachment-action.ts +15 -0
  29. package/dist/generators/ui/files/shared/ui/attachment/src/lib/hlm-attachment-actions.ts +15 -0
  30. package/dist/generators/ui/files/shared/ui/attachment/src/lib/hlm-attachment-content.ts +15 -0
  31. package/dist/generators/ui/files/shared/ui/attachment/src/lib/hlm-attachment-description.ts +15 -0
  32. package/dist/generators/ui/files/shared/ui/attachment/src/lib/hlm-attachment-group.ts +15 -0
  33. package/dist/generators/ui/files/shared/ui/attachment/src/lib/hlm-attachment-media.ts +36 -0
  34. package/dist/generators/ui/files/shared/ui/attachment/src/lib/hlm-attachment-title.ts +15 -0
  35. package/dist/generators/ui/files/shared/ui/attachment/src/lib/hlm-attachment-trigger.ts +23 -0
  36. package/dist/generators/ui/files/shared/ui/attachment/src/lib/hlm-attachment.ts +47 -0
  37. package/dist/generators/ui/files/shared/ui/autocomplete/src/index.ts +40 -0
  38. package/dist/generators/ui/files/shared/ui/autocomplete/src/lib/hlm-autocomplete-content.ts +16 -0
  39. package/dist/generators/ui/files/shared/ui/autocomplete/src/lib/hlm-autocomplete-empty.ts +17 -0
  40. package/dist/generators/ui/files/shared/ui/autocomplete/src/lib/hlm-autocomplete-group.ts +14 -0
  41. package/dist/generators/ui/files/shared/ui/autocomplete/src/lib/hlm-autocomplete-input.ts +77 -0
  42. package/dist/generators/ui/files/shared/ui/autocomplete/src/lib/hlm-autocomplete-item.ts +36 -0
  43. package/dist/generators/ui/files/shared/ui/autocomplete/src/lib/hlm-autocomplete-label.ts +14 -0
  44. package/dist/generators/ui/files/shared/ui/autocomplete/src/lib/hlm-autocomplete-list.ts +17 -0
  45. package/dist/generators/ui/files/shared/ui/autocomplete/src/lib/hlm-autocomplete-portal.ts +8 -0
  46. package/dist/generators/ui/files/shared/ui/autocomplete/src/lib/hlm-autocomplete-search.ts +37 -0
  47. package/dist/generators/ui/files/shared/ui/autocomplete/src/lib/hlm-autocomplete-separator.ts +14 -0
  48. package/dist/generators/ui/files/shared/ui/autocomplete/src/lib/hlm-autocomplete-status.ts +17 -0
  49. package/dist/generators/ui/files/shared/ui/autocomplete/src/lib/hlm-autocomplete.ts +44 -0
  50. package/dist/generators/ui/files/shared/ui/avatar/src/index.ts +22 -0
  51. package/dist/generators/ui/files/shared/ui/avatar/src/lib/hlm-avatar-badge.ts +19 -0
  52. package/dist/generators/ui/files/shared/ui/avatar/src/lib/hlm-avatar-fallback.ts +20 -0
  53. package/dist/generators/ui/files/shared/ui/avatar/src/lib/hlm-avatar-group-count.ts +17 -0
  54. package/dist/generators/ui/files/shared/ui/avatar/src/lib/hlm-avatar-group.ts +17 -0
  55. package/dist/generators/ui/files/shared/ui/avatar/src/lib/hlm-avatar-image.ts +19 -0
  56. package/dist/generators/ui/files/shared/ui/avatar/src/lib/hlm-avatar.ts +31 -0
  57. package/dist/generators/ui/files/shared/ui/badge/src/index.ts +5 -0
  58. package/dist/generators/ui/files/shared/ui/badge/src/lib/hlm-badge.ts +40 -0
  59. package/dist/generators/ui/files/shared/ui/breadcrumb/src/index.ts +25 -0
  60. package/dist/generators/ui/files/shared/ui/breadcrumb/src/lib/hlm-breadcrumb-ellipsis.ts +27 -0
  61. package/dist/generators/ui/files/shared/ui/breadcrumb/src/lib/hlm-breadcrumb-item.ts +14 -0
  62. package/dist/generators/ui/files/shared/ui/breadcrumb/src/lib/hlm-breadcrumb-link.ts +36 -0
  63. package/dist/generators/ui/files/shared/ui/breadcrumb/src/lib/hlm-breadcrumb-list.ts +16 -0
  64. package/dist/generators/ui/files/shared/ui/breadcrumb/src/lib/hlm-breadcrumb-page.ts +17 -0
  65. package/dist/generators/ui/files/shared/ui/breadcrumb/src/lib/hlm-breadcrumb-separator.ts +27 -0
  66. package/dist/generators/ui/files/shared/ui/breadcrumb/src/lib/hlm-breadcrumb.ts +13 -0
  67. package/dist/generators/ui/files/shared/ui/bubble/src/index.ts +16 -0
  68. package/dist/generators/ui/files/shared/ui/bubble/src/lib/hlm-bubble-content.ts +15 -0
  69. package/dist/generators/ui/files/shared/ui/bubble/src/lib/hlm-bubble-group.ts +12 -0
  70. package/dist/generators/ui/files/shared/ui/bubble/src/lib/hlm-bubble-reactions.ts +43 -0
  71. package/dist/generators/ui/files/shared/ui/bubble/src/lib/hlm-bubble.ts +53 -0
  72. package/dist/generators/ui/files/shared/ui/button/src/index.ts +6 -0
  73. package/dist/generators/ui/files/shared/ui/button/src/lib/hlm-button.token.ts +22 -0
  74. package/dist/generators/ui/files/shared/ui/button/src/lib/hlm-button.ts +72 -0
  75. package/dist/generators/ui/files/shared/ui/button-group/src/index.ts +13 -0
  76. package/dist/generators/ui/files/shared/ui/button-group/src/lib/hlm-button-group-separator.ts +21 -0
  77. package/dist/generators/ui/files/shared/ui/button-group/src/lib/hlm-button-group-text.ts +17 -0
  78. package/dist/generators/ui/files/shared/ui/button-group/src/lib/hlm-button-group.ts +36 -0
  79. package/dist/generators/ui/files/shared/ui/calendar/src/index.ts +16 -0
  80. package/dist/generators/ui/files/shared/ui/calendar/src/lib/hlm-calendar-multi.ts +195 -0
  81. package/dist/generators/ui/files/shared/ui/calendar/src/lib/hlm-calendar-range.ts +194 -0
  82. package/dist/generators/ui/files/shared/ui/calendar/src/lib/hlm-calendar.ts +189 -0
  83. package/dist/generators/ui/files/shared/ui/calendar/src/lib/hlm-month-year-calendar.ts +119 -0
  84. package/dist/generators/ui/files/shared/ui/card/src/index.ts +25 -0
  85. package/dist/generators/ui/files/shared/ui/card/src/lib/hlm-card-action.ts +12 -0
  86. package/dist/generators/ui/files/shared/ui/card/src/lib/hlm-card-content.ts +12 -0
  87. package/dist/generators/ui/files/shared/ui/card/src/lib/hlm-card-description.ts +12 -0
  88. package/dist/generators/ui/files/shared/ui/card/src/lib/hlm-card-footer.ts +12 -0
  89. package/dist/generators/ui/files/shared/ui/card/src/lib/hlm-card-header.ts +15 -0
  90. package/dist/generators/ui/files/shared/ui/card/src/lib/hlm-card-title.ts +12 -0
  91. package/dist/generators/ui/files/shared/ui/card/src/lib/hlm-card.token.ts +19 -0
  92. package/dist/generators/ui/files/shared/ui/card/src/lib/hlm-card.ts +22 -0
  93. package/dist/generators/ui/files/shared/ui/carousel/src/index.ts +22 -0
  94. package/dist/generators/ui/files/shared/ui/carousel/src/lib/hlm-carousel-content.ts +17 -0
  95. package/dist/generators/ui/files/shared/ui/carousel/src/lib/hlm-carousel-item.ts +22 -0
  96. package/dist/generators/ui/files/shared/ui/carousel/src/lib/hlm-carousel-next.ts +54 -0
  97. package/dist/generators/ui/files/shared/ui/carousel/src/lib/hlm-carousel-previous.ts +55 -0
  98. package/dist/generators/ui/files/shared/ui/carousel/src/lib/hlm-carousel-slide-display.ts +33 -0
  99. package/dist/generators/ui/files/shared/ui/carousel/src/lib/hlm-carousel.ts +105 -0
  100. package/dist/generators/ui/files/shared/ui/checkbox/src/index.ts +5 -0
  101. package/dist/generators/ui/files/shared/ui/checkbox/src/lib/hlm-checkbox.ts +161 -0
  102. package/dist/generators/ui/files/shared/ui/collapsible/src/index.ts +13 -0
  103. package/dist/generators/ui/files/shared/ui/collapsible/src/lib/hlm-collapsible-content.ts +14 -0
  104. package/dist/generators/ui/files/shared/ui/collapsible/src/lib/hlm-collapsible-trigger.ts +9 -0
  105. package/dist/generators/ui/files/shared/ui/collapsible/src/lib/hlm-collapsible.ts +15 -0
  106. package/dist/generators/ui/files/shared/ui/combobox/src/index.ts +64 -0
  107. package/dist/generators/ui/files/shared/ui/combobox/src/lib/hlm-combobox-chip-input.ts +14 -0
  108. package/dist/generators/ui/files/shared/ui/combobox/src/lib/hlm-combobox-chip-remove.ts +18 -0
  109. package/dist/generators/ui/files/shared/ui/combobox/src/lib/hlm-combobox-chip.ts +35 -0
  110. package/dist/generators/ui/files/shared/ui/combobox/src/lib/hlm-combobox-chips.ts +35 -0
  111. package/dist/generators/ui/files/shared/ui/combobox/src/lib/hlm-combobox-content.ts +15 -0
  112. package/dist/generators/ui/files/shared/ui/combobox/src/lib/hlm-combobox-empty.ts +17 -0
  113. package/dist/generators/ui/files/shared/ui/combobox/src/lib/hlm-combobox-group.ts +14 -0
  114. package/dist/generators/ui/files/shared/ui/combobox/src/lib/hlm-combobox-input.ts +93 -0
  115. package/dist/generators/ui/files/shared/ui/combobox/src/lib/hlm-combobox-item.ts +36 -0
  116. package/dist/generators/ui/files/shared/ui/combobox/src/lib/hlm-combobox-label.ts +14 -0
  117. package/dist/generators/ui/files/shared/ui/combobox/src/lib/hlm-combobox-list.ts +17 -0
  118. package/dist/generators/ui/files/shared/ui/combobox/src/lib/hlm-combobox-multiple.ts +46 -0
  119. package/dist/generators/ui/files/shared/ui/combobox/src/lib/hlm-combobox-placeholder.ts +17 -0
  120. package/dist/generators/ui/files/shared/ui/combobox/src/lib/hlm-combobox-portal.ts +8 -0
  121. package/dist/generators/ui/files/shared/ui/combobox/src/lib/hlm-combobox-separator.ts +14 -0
  122. package/dist/generators/ui/files/shared/ui/combobox/src/lib/hlm-combobox-status.ts +17 -0
  123. package/dist/generators/ui/files/shared/ui/combobox/src/lib/hlm-combobox-trigger.ts +68 -0
  124. package/dist/generators/ui/files/shared/ui/combobox/src/lib/hlm-combobox-value-template.ts +5 -0
  125. package/dist/generators/ui/files/shared/ui/combobox/src/lib/hlm-combobox-value.ts +14 -0
  126. package/dist/generators/ui/files/shared/ui/combobox/src/lib/hlm-combobox-values.ts +5 -0
  127. package/dist/generators/ui/files/shared/ui/combobox/src/lib/hlm-combobox.ts +46 -0
  128. package/dist/generators/ui/files/shared/ui/command/src/index.ts +37 -0
  129. package/dist/generators/ui/files/shared/ui/command/src/lib/hlm-command-dialog.ts +58 -0
  130. package/dist/generators/ui/files/shared/ui/command/src/lib/hlm-command-empty-state.ts +8 -0
  131. package/dist/generators/ui/files/shared/ui/command/src/lib/hlm-command-empty.ts +14 -0
  132. package/dist/generators/ui/files/shared/ui/command/src/lib/hlm-command-group-label.ts +15 -0
  133. package/dist/generators/ui/files/shared/ui/command/src/lib/hlm-command-group.ts +24 -0
  134. package/dist/generators/ui/files/shared/ui/command/src/lib/hlm-command-input.ts +41 -0
  135. package/dist/generators/ui/files/shared/ui/command/src/lib/hlm-command-item.ts +25 -0
  136. package/dist/generators/ui/files/shared/ui/command/src/lib/hlm-command-list.ts +23 -0
  137. package/dist/generators/ui/files/shared/ui/command/src/lib/hlm-command-separator.ts +16 -0
  138. package/dist/generators/ui/files/shared/ui/command/src/lib/hlm-command-shortcut.ts +17 -0
  139. package/dist/generators/ui/files/shared/ui/command/src/lib/hlm-command.ts +25 -0
  140. package/dist/generators/ui/files/shared/ui/context-menu/src/index.ts +6 -0
  141. package/dist/generators/ui/files/shared/ui/context-menu/src/lib/hlm-context-menu-token.ts +22 -0
  142. package/dist/generators/ui/files/shared/ui/context-menu/src/lib/hlm-context-menu-trigger.ts +70 -0
  143. package/dist/generators/ui/files/shared/ui/date-picker/src/index.ts +38 -0
  144. package/dist/generators/ui/files/shared/ui/date-picker/src/lib/hlm-date-multi-input.ts +104 -0
  145. package/dist/generators/ui/files/shared/ui/date-picker/src/lib/hlm-date-picker-anchor.ts +23 -0
  146. package/dist/generators/ui/files/shared/ui/date-picker/src/lib/hlm-date-picker-input.ts +105 -0
  147. package/dist/generators/ui/files/shared/ui/date-picker/src/lib/hlm-date-picker-multi.token.ts +109 -0
  148. package/dist/generators/ui/files/shared/ui/date-picker/src/lib/hlm-date-picker-multi.ts +220 -0
  149. package/dist/generators/ui/files/shared/ui/date-picker/src/lib/hlm-date-picker-trigger.ts +104 -0
  150. package/dist/generators/ui/files/shared/ui/date-picker/src/lib/hlm-date-picker.token.ts +69 -0
  151. package/dist/generators/ui/files/shared/ui/date-picker/src/lib/hlm-date-picker.ts +203 -0
  152. package/dist/generators/ui/files/shared/ui/date-picker/src/lib/hlm-date-range-input.ts +107 -0
  153. package/dist/generators/ui/files/shared/ui/date-picker/src/lib/hlm-date-range-picker.token.ts +86 -0
  154. package/dist/generators/ui/files/shared/ui/date-picker/src/lib/hlm-date-range-picker.ts +252 -0
  155. package/dist/generators/ui/files/shared/ui/date-picker/src/lib/hlm-month-year-input.ts +105 -0
  156. package/dist/generators/ui/files/shared/ui/date-picker/src/lib/hlm-month-year-picker.token.ts +89 -0
  157. package/dist/generators/ui/files/shared/ui/date-picker/src/lib/hlm-month-year-picker.ts +196 -0
  158. package/dist/generators/ui/files/shared/ui/dialog/src/index.ts +35 -0
  159. package/dist/generators/ui/files/shared/ui/dialog/src/lib/hlm-dialog-close.ts +9 -0
  160. package/dist/generators/ui/files/shared/ui/dialog/src/lib/hlm-dialog-content.ts +74 -0
  161. package/dist/generators/ui/files/shared/ui/dialog/src/lib/hlm-dialog-description.ts +17 -0
  162. package/dist/generators/ui/files/shared/ui/dialog/src/lib/hlm-dialog-footer.ts +15 -0
  163. package/dist/generators/ui/files/shared/ui/dialog/src/lib/hlm-dialog-header.ts +12 -0
  164. package/dist/generators/ui/files/shared/ui/dialog/src/lib/hlm-dialog-overlay.ts +27 -0
  165. package/dist/generators/ui/files/shared/ui/dialog/src/lib/hlm-dialog-portal.ts +8 -0
  166. package/dist/generators/ui/files/shared/ui/dialog/src/lib/hlm-dialog-title.ts +14 -0
  167. package/dist/generators/ui/files/shared/ui/dialog/src/lib/hlm-dialog-trigger.ts +14 -0
  168. package/dist/generators/ui/files/shared/ui/dialog/src/lib/hlm-dialog.service.ts +46 -0
  169. package/dist/generators/ui/files/shared/ui/dialog/src/lib/hlm-dialog.ts +24 -0
  170. package/dist/generators/ui/files/shared/ui/drawer/src/index.ts +34 -0
  171. package/dist/generators/ui/files/shared/ui/drawer/src/lib/hlm-drawer-close.ts +9 -0
  172. package/dist/generators/ui/files/shared/ui/drawer/src/lib/hlm-drawer-content.ts +38 -0
  173. package/dist/generators/ui/files/shared/ui/drawer/src/lib/hlm-drawer-description.ts +14 -0
  174. package/dist/generators/ui/files/shared/ui/drawer/src/lib/hlm-drawer-footer.ts +12 -0
  175. package/dist/generators/ui/files/shared/ui/drawer/src/lib/hlm-drawer-header.ts +15 -0
  176. package/dist/generators/ui/files/shared/ui/drawer/src/lib/hlm-drawer-overlay.ts +27 -0
  177. package/dist/generators/ui/files/shared/ui/drawer/src/lib/hlm-drawer-portal.ts +8 -0
  178. package/dist/generators/ui/files/shared/ui/drawer/src/lib/hlm-drawer-title.ts +14 -0
  179. package/dist/generators/ui/files/shared/ui/drawer/src/lib/hlm-drawer-trigger.ts +9 -0
  180. package/dist/generators/ui/files/shared/ui/drawer/src/lib/hlm-drawer.ts +29 -0
  181. package/dist/generators/ui/files/shared/ui/dropdown-menu/src/index.ts +49 -0
  182. package/dist/generators/ui/files/shared/ui/dropdown-menu/src/lib/hlm-dropdown-menu-checkbox-indicator.ts +21 -0
  183. package/dist/generators/ui/files/shared/ui/dropdown-menu/src/lib/hlm-dropdown-menu-checkbox.ts +54 -0
  184. package/dist/generators/ui/files/shared/ui/dropdown-menu/src/lib/hlm-dropdown-menu-focus-on-hover.ts +35 -0
  185. package/dist/generators/ui/files/shared/ui/dropdown-menu/src/lib/hlm-dropdown-menu-group.ts +14 -0
  186. package/dist/generators/ui/files/shared/ui/dropdown-menu/src/lib/hlm-dropdown-menu-item-sub-indicator.ts +19 -0
  187. package/dist/generators/ui/files/shared/ui/dropdown-menu/src/lib/hlm-dropdown-menu-item.ts +42 -0
  188. package/dist/generators/ui/files/shared/ui/dropdown-menu/src/lib/hlm-dropdown-menu-label.ts +20 -0
  189. package/dist/generators/ui/files/shared/ui/dropdown-menu/src/lib/hlm-dropdown-menu-radio-indicator.ts +21 -0
  190. package/dist/generators/ui/files/shared/ui/dropdown-menu/src/lib/hlm-dropdown-menu-radio.ts +49 -0
  191. package/dist/generators/ui/files/shared/ui/dropdown-menu/src/lib/hlm-dropdown-menu-separator.ts +12 -0
  192. package/dist/generators/ui/files/shared/ui/dropdown-menu/src/lib/hlm-dropdown-menu-shortcut.ts +15 -0
  193. package/dist/generators/ui/files/shared/ui/dropdown-menu/src/lib/hlm-dropdown-menu-sub-trigger.ts +52 -0
  194. package/dist/generators/ui/files/shared/ui/dropdown-menu/src/lib/hlm-dropdown-menu-sub.ts +53 -0
  195. package/dist/generators/ui/files/shared/ui/dropdown-menu/src/lib/hlm-dropdown-menu-token.ts +26 -0
  196. package/dist/generators/ui/files/shared/ui/dropdown-menu/src/lib/hlm-dropdown-menu-trigger.ts +46 -0
  197. package/dist/generators/ui/files/shared/ui/dropdown-menu/src/lib/hlm-dropdown-menu.ts +57 -0
  198. package/dist/generators/ui/files/shared/ui/empty/src/index.ts +22 -0
  199. package/dist/generators/ui/files/shared/ui/empty/src/lib/hlm-empty-content.ts +14 -0
  200. package/dist/generators/ui/files/shared/ui/empty/src/lib/hlm-empty-description.ts +15 -0
  201. package/dist/generators/ui/files/shared/ui/empty/src/lib/hlm-empty-header.ts +12 -0
  202. package/dist/generators/ui/files/shared/ui/empty/src/lib/hlm-empty-media.ts +35 -0
  203. package/dist/generators/ui/files/shared/ui/empty/src/lib/hlm-empty-title.ts +12 -0
  204. package/dist/generators/ui/files/shared/ui/empty/src/lib/hlm-empty.ts +15 -0
  205. package/dist/generators/ui/files/shared/ui/field/src/index.ts +34 -0
  206. package/dist/generators/ui/files/shared/ui/field/src/lib/hlm-field-content.ts +12 -0
  207. package/dist/generators/ui/files/shared/ui/field/src/lib/hlm-field-description.ts +53 -0
  208. package/dist/generators/ui/files/shared/ui/field/src/lib/hlm-field-error.ts +100 -0
  209. package/dist/generators/ui/files/shared/ui/field/src/lib/hlm-field-group.ts +15 -0
  210. package/dist/generators/ui/files/shared/ui/field/src/lib/hlm-field-label.ts +17 -0
  211. package/dist/generators/ui/files/shared/ui/field/src/lib/hlm-field-legend.ts +19 -0
  212. package/dist/generators/ui/files/shared/ui/field/src/lib/hlm-field-separator.ts +24 -0
  213. package/dist/generators/ui/files/shared/ui/field/src/lib/hlm-field-set.ts +15 -0
  214. package/dist/generators/ui/files/shared/ui/field/src/lib/hlm-field-title.ts +15 -0
  215. package/dist/generators/ui/files/shared/ui/field/src/lib/hlm-field.ts +47 -0
  216. package/dist/generators/ui/files/shared/ui/hover-card/src/index.ts +16 -0
  217. package/dist/generators/ui/files/shared/ui/hover-card/src/lib/hlm-hover-card-content.ts +31 -0
  218. package/dist/generators/ui/files/shared/ui/hover-card/src/lib/hlm-hover-card-portal.ts +8 -0
  219. package/dist/generators/ui/files/shared/ui/hover-card/src/lib/hlm-hover-card-trigger.ts +23 -0
  220. package/dist/generators/ui/files/shared/ui/hover-card/src/lib/hlm-hover-card.ts +11 -0
  221. package/dist/generators/ui/files/shared/ui/input/src/index.ts +5 -0
  222. package/dist/generators/ui/files/shared/ui/input/src/lib/hlm-input.ts +21 -0
  223. package/dist/generators/ui/files/shared/ui/input-group/src/index.ts +22 -0
  224. package/dist/generators/ui/files/shared/ui/input-group/src/lib/hlm-input-group-addon.ts +40 -0
  225. package/dist/generators/ui/files/shared/ui/input-group/src/lib/hlm-input-group-button.ts +47 -0
  226. package/dist/generators/ui/files/shared/ui/input-group/src/lib/hlm-input-group-input.ts +17 -0
  227. package/dist/generators/ui/files/shared/ui/input-group/src/lib/hlm-input-group-text.ts +14 -0
  228. package/dist/generators/ui/files/shared/ui/input-group/src/lib/hlm-input-group-textarea.ts +17 -0
  229. package/dist/generators/ui/files/shared/ui/input-group/src/lib/hlm-input-group.ts +18 -0
  230. package/dist/generators/ui/files/shared/ui/input-otp/src/index.ts +19 -0
  231. package/dist/generators/ui/files/shared/ui/input-otp/src/lib/hlm-input-otp-fake-caret.ts +13 -0
  232. package/dist/generators/ui/files/shared/ui/input-otp/src/lib/hlm-input-otp-group.ts +15 -0
  233. package/dist/generators/ui/files/shared/ui/input-otp/src/lib/hlm-input-otp-separator.ts +21 -0
  234. package/dist/generators/ui/files/shared/ui/input-otp/src/lib/hlm-input-otp-slot.ts +39 -0
  235. package/dist/generators/ui/files/shared/ui/input-otp/src/lib/hlm-input-otp.ts +12 -0
  236. package/dist/generators/ui/files/shared/ui/item/src/index.ts +35 -0
  237. package/dist/generators/ui/files/shared/ui/item/src/lib/hlm-item-actions.ts +12 -0
  238. package/dist/generators/ui/files/shared/ui/item/src/lib/hlm-item-content.ts +15 -0
  239. package/dist/generators/ui/files/shared/ui/item/src/lib/hlm-item-description.ts +15 -0
  240. package/dist/generators/ui/files/shared/ui/item/src/lib/hlm-item-footer.ts +12 -0
  241. package/dist/generators/ui/files/shared/ui/item/src/lib/hlm-item-group.ts +15 -0
  242. package/dist/generators/ui/files/shared/ui/item/src/lib/hlm-item-header.ts +12 -0
  243. package/dist/generators/ui/files/shared/ui/item/src/lib/hlm-item-media.ts +38 -0
  244. package/dist/generators/ui/files/shared/ui/item/src/lib/hlm-item-separator.ts +15 -0
  245. package/dist/generators/ui/files/shared/ui/item/src/lib/hlm-item-title.ts +15 -0
  246. package/dist/generators/ui/files/shared/ui/item/src/lib/hlm-item-token.ts +41 -0
  247. package/dist/generators/ui/files/shared/ui/item/src/lib/hlm-item.ts +46 -0
  248. package/dist/generators/ui/files/shared/ui/kbd/src/index.ts +7 -0
  249. package/dist/generators/ui/files/shared/ui/kbd/src/lib/hlm-kbd-group.ts +14 -0
  250. package/dist/generators/ui/files/shared/ui/kbd/src/lib/hlm-kbd.ts +17 -0
  251. package/dist/generators/ui/files/shared/ui/label/src/index.ts +5 -0
  252. package/dist/generators/ui/files/shared/ui/label/src/lib/hlm-label.ts +17 -0
  253. package/dist/generators/ui/files/shared/ui/language-switcher/language-switcher.ts +52 -0
  254. package/dist/generators/ui/files/shared/ui/marker/src/index.ts +9 -0
  255. package/dist/generators/ui/files/shared/ui/marker/src/lib/hlm-marker-content.ts +15 -0
  256. package/dist/generators/ui/files/shared/ui/marker/src/lib/hlm-marker-icon.ts +15 -0
  257. package/dist/generators/ui/files/shared/ui/marker/src/lib/hlm-marker.ts +37 -0
  258. package/dist/generators/ui/files/shared/ui/menubar/src/index.ts +8 -0
  259. package/dist/generators/ui/files/shared/ui/menubar/src/lib/hlm-menubar-token.ts +22 -0
  260. package/dist/generators/ui/files/shared/ui/menubar/src/lib/hlm-menubar-trigger.ts +69 -0
  261. package/dist/generators/ui/files/shared/ui/menubar/src/lib/hlm-menubar.ts +16 -0
  262. package/dist/generators/ui/files/shared/ui/message/src/index.ts +22 -0
  263. package/dist/generators/ui/files/shared/ui/message/src/lib/hlm-message-avatar.ts +15 -0
  264. package/dist/generators/ui/files/shared/ui/message/src/lib/hlm-message-content.ts +15 -0
  265. package/dist/generators/ui/files/shared/ui/message/src/lib/hlm-message-footer.ts +15 -0
  266. package/dist/generators/ui/files/shared/ui/message/src/lib/hlm-message-group.ts +12 -0
  267. package/dist/generators/ui/files/shared/ui/message/src/lib/hlm-message-header.ts +15 -0
  268. package/dist/generators/ui/files/shared/ui/message/src/lib/hlm-message.ts +24 -0
  269. package/dist/generators/ui/files/shared/ui/native-select/src/index.ts +13 -0
  270. package/dist/generators/ui/files/shared/ui/native-select/src/lib/hlm-native-select-opt-group.ts +12 -0
  271. package/dist/generators/ui/files/shared/ui/native-select/src/lib/hlm-native-select-option.ts +12 -0
  272. package/dist/generators/ui/files/shared/ui/native-select/src/lib/hlm-native-select.ts +161 -0
  273. package/dist/generators/ui/files/shared/ui/navigation-menu/src/index.ts +25 -0
  274. package/dist/generators/ui/files/shared/ui/navigation-menu/src/lib/hlm-navigation-menu-content.ts +24 -0
  275. package/dist/generators/ui/files/shared/ui/navigation-menu/src/lib/hlm-navigation-menu-item.ts +16 -0
  276. package/dist/generators/ui/files/shared/ui/navigation-menu/src/lib/hlm-navigation-menu-link.ts +19 -0
  277. package/dist/generators/ui/files/shared/ui/navigation-menu/src/lib/hlm-navigation-menu-list.ts +23 -0
  278. package/dist/generators/ui/files/shared/ui/navigation-menu/src/lib/hlm-navigation-menu-portal.ts +8 -0
  279. package/dist/generators/ui/files/shared/ui/navigation-menu/src/lib/hlm-navigation-menu-trigger.ts +30 -0
  280. package/dist/generators/ui/files/shared/ui/navigation-menu/src/lib/hlm-navigation-menu.ts +24 -0
  281. package/dist/generators/ui/files/shared/ui/pagination/src/index.ts +31 -0
  282. package/dist/generators/ui/files/shared/ui/pagination/src/lib/hlm-numbered-pagination-query-params.ts +191 -0
  283. package/dist/generators/ui/files/shared/ui/pagination/src/lib/hlm-numbered-pagination.ts +290 -0
  284. package/dist/generators/ui/files/shared/ui/pagination/src/lib/hlm-pagination-content.ts +12 -0
  285. package/dist/generators/ui/files/shared/ui/pagination/src/lib/hlm-pagination-ellipsis.ts +27 -0
  286. package/dist/generators/ui/files/shared/ui/pagination/src/lib/hlm-pagination-item.ts +7 -0
  287. package/dist/generators/ui/files/shared/ui/pagination/src/lib/hlm-pagination-link.ts +51 -0
  288. package/dist/generators/ui/files/shared/ui/pagination/src/lib/hlm-pagination-next.ts +65 -0
  289. package/dist/generators/ui/files/shared/ui/pagination/src/lib/hlm-pagination-previous.ts +65 -0
  290. package/dist/generators/ui/files/shared/ui/pagination/src/lib/hlm-pagination.ts +19 -0
  291. package/dist/generators/ui/files/shared/ui/popover/src/index.ts +25 -0
  292. package/dist/generators/ui/files/shared/ui/popover/src/lib/hlm-popover-content.ts +25 -0
  293. package/dist/generators/ui/files/shared/ui/popover/src/lib/hlm-popover-description.ts +12 -0
  294. package/dist/generators/ui/files/shared/ui/popover/src/lib/hlm-popover-header.ts +12 -0
  295. package/dist/generators/ui/files/shared/ui/popover/src/lib/hlm-popover-portal.ts +8 -0
  296. package/dist/generators/ui/files/shared/ui/popover/src/lib/hlm-popover-title.ts +12 -0
  297. package/dist/generators/ui/files/shared/ui/popover/src/lib/hlm-popover-trigger.ts +14 -0
  298. package/dist/generators/ui/files/shared/ui/popover/src/lib/hlm-popover.ts +23 -0
  299. package/dist/generators/ui/files/shared/ui/progress/src/index.ts +7 -0
  300. package/dist/generators/ui/files/shared/ui/progress/src/lib/hlm-progress-indicator.ts +31 -0
  301. package/dist/generators/ui/files/shared/ui/progress/src/lib/hlm-progress.ts +14 -0
  302. package/dist/generators/ui/files/shared/ui/radio-group/src/index.ts +9 -0
  303. package/dist/generators/ui/files/shared/ui/radio-group/src/lib/hlm-radio-group.ts +44 -0
  304. package/dist/generators/ui/files/shared/ui/radio-group/src/lib/hlm-radio-indicator.ts +21 -0
  305. package/dist/generators/ui/files/shared/ui/radio-group/src/lib/hlm-radio.ts +130 -0
  306. package/dist/generators/ui/files/shared/ui/resizable/src/index.ts +13 -0
  307. package/dist/generators/ui/files/shared/ui/resizable/src/lib/hlm-resizable-group.ts +22 -0
  308. package/dist/generators/ui/files/shared/ui/resizable/src/lib/hlm-resizable-handle.ts +28 -0
  309. package/dist/generators/ui/files/shared/ui/resizable/src/lib/hlm-resizable-panel.ts +23 -0
  310. package/dist/generators/ui/files/shared/ui/scroll-area/src/index.ts +5 -0
  311. package/dist/generators/ui/files/shared/ui/scroll-area/src/lib/hlm-scroll-area.ts +21 -0
  312. package/dist/generators/ui/files/shared/ui/select/src/index.ts +52 -0
  313. package/dist/generators/ui/files/shared/ui/select/src/lib/hlm-select-content.ts +44 -0
  314. package/dist/generators/ui/files/shared/ui/select/src/lib/hlm-select-group.ts +14 -0
  315. package/dist/generators/ui/files/shared/ui/select/src/lib/hlm-select-item.ts +36 -0
  316. package/dist/generators/ui/files/shared/ui/select/src/lib/hlm-select-label.ts +14 -0
  317. package/dist/generators/ui/files/shared/ui/select/src/lib/hlm-select-multiple.ts +37 -0
  318. package/dist/generators/ui/files/shared/ui/select/src/lib/hlm-select-placeholder.ts +17 -0
  319. package/dist/generators/ui/files/shared/ui/select/src/lib/hlm-select-portal.ts +8 -0
  320. package/dist/generators/ui/files/shared/ui/select/src/lib/hlm-select-scroll-down.ts +22 -0
  321. package/dist/generators/ui/files/shared/ui/select/src/lib/hlm-select-scroll-up.ts +22 -0
  322. package/dist/generators/ui/files/shared/ui/select/src/lib/hlm-select-separator.ts +14 -0
  323. package/dist/generators/ui/files/shared/ui/select/src/lib/hlm-select-trigger.ts +58 -0
  324. package/dist/generators/ui/files/shared/ui/select/src/lib/hlm-select-value-template.ts +5 -0
  325. package/dist/generators/ui/files/shared/ui/select/src/lib/hlm-select-value.ts +18 -0
  326. package/dist/generators/ui/files/shared/ui/select/src/lib/hlm-select-values-content.ts +9 -0
  327. package/dist/generators/ui/files/shared/ui/select/src/lib/hlm-select-values.ts +5 -0
  328. package/dist/generators/ui/files/shared/ui/select/src/lib/hlm-select.ts +37 -0
  329. package/dist/generators/ui/files/shared/ui/separator/src/index.ts +5 -0
  330. package/dist/generators/ui/files/shared/ui/separator/src/lib/hlm-separator.ts +19 -0
  331. package/dist/generators/ui/files/shared/ui/sheet/src/index.ts +34 -0
  332. package/dist/generators/ui/files/shared/ui/sheet/src/lib/hlm-sheet-close.ts +9 -0
  333. package/dist/generators/ui/files/shared/ui/sheet/src/lib/hlm-sheet-content.ts +66 -0
  334. package/dist/generators/ui/files/shared/ui/sheet/src/lib/hlm-sheet-description.ts +14 -0
  335. package/dist/generators/ui/files/shared/ui/sheet/src/lib/hlm-sheet-footer.ts +12 -0
  336. package/dist/generators/ui/files/shared/ui/sheet/src/lib/hlm-sheet-header.ts +12 -0
  337. package/dist/generators/ui/files/shared/ui/sheet/src/lib/hlm-sheet-overlay.ts +27 -0
  338. package/dist/generators/ui/files/shared/ui/sheet/src/lib/hlm-sheet-portal.ts +8 -0
  339. package/dist/generators/ui/files/shared/ui/sheet/src/lib/hlm-sheet-title.ts +14 -0
  340. package/dist/generators/ui/files/shared/ui/sheet/src/lib/hlm-sheet-trigger.ts +9 -0
  341. package/dist/generators/ui/files/shared/ui/sheet/src/lib/hlm-sheet.ts +29 -0
  342. package/dist/generators/ui/files/shared/ui/sidebar/src/index.ts +75 -0
  343. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar-content.ts +18 -0
  344. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar-footer.ts +15 -0
  345. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar-group-action.ts +18 -0
  346. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar-group-content.ts +15 -0
  347. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar-group-label.ts +18 -0
  348. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar-group.ts +15 -0
  349. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar-header.ts +15 -0
  350. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar-input.ts +17 -0
  351. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar-inset.ts +15 -0
  352. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar-menu-action.ts +24 -0
  353. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar-menu-badge.ts +18 -0
  354. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar-menu-button.ts +93 -0
  355. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar-menu-item.ts +15 -0
  356. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar-menu-skeleton.ts +33 -0
  357. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar-menu-sub-button.ts +41 -0
  358. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar-menu-sub-item.ts +15 -0
  359. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar-menu-sub.ts +18 -0
  360. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar-menu.ts +15 -0
  361. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar-rail.ts +34 -0
  362. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar-separator.ts +17 -0
  363. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar-trigger.ts +35 -0
  364. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar-wrapper.ts +24 -0
  365. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar.service.ts +136 -0
  366. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar.token.ts +35 -0
  367. package/dist/generators/ui/files/shared/ui/sidebar/src/lib/hlm-sidebar.ts +139 -0
  368. package/dist/generators/ui/files/shared/ui/skeleton/src/index.ts +5 -0
  369. package/dist/generators/ui/files/shared/ui/skeleton/src/lib/hlm-skeleton.ts +14 -0
  370. package/dist/generators/ui/files/shared/ui/slider/src/index.ts +4 -0
  371. package/dist/generators/ui/files/shared/ui/slider/src/lib/hlm-slider.ts +81 -0
  372. package/dist/generators/ui/files/shared/ui/sonner/src/index.ts +5 -0
  373. package/dist/generators/ui/files/shared/ui/sonner/src/lib/hlm-toaster.ts +119 -0
  374. package/dist/generators/ui/files/shared/ui/spinner/src/index.ts +5 -0
  375. package/dist/generators/ui/files/shared/ui/spinner/src/lib/hlm-spinner.ts +31 -0
  376. package/dist/generators/ui/files/shared/ui/switch/src/index.ts +7 -0
  377. package/dist/generators/ui/files/shared/ui/switch/src/lib/hlm-switch-thumb.ts +15 -0
  378. package/dist/generators/ui/files/shared/ui/switch/src/lib/hlm-switch.ts +120 -0
  379. package/dist/generators/ui/files/shared/ui/table/src/index.ts +25 -0
  380. package/dist/generators/ui/files/shared/ui/table/src/lib/hlm-table.ts +129 -0
  381. package/dist/generators/ui/files/shared/ui/tabs/src/index.ts +22 -0
  382. package/dist/generators/ui/files/shared/ui/tabs/src/lib/hlm-tabs-content-lazy.ts +8 -0
  383. package/dist/generators/ui/files/shared/ui/tabs/src/lib/hlm-tabs-content.ts +18 -0
  384. package/dist/generators/ui/files/shared/ui/tabs/src/lib/hlm-tabs-list.ts +36 -0
  385. package/dist/generators/ui/files/shared/ui/tabs/src/lib/hlm-tabs-paginated-list.ts +118 -0
  386. package/dist/generators/ui/files/shared/ui/tabs/src/lib/hlm-tabs-trigger.ts +24 -0
  387. package/dist/generators/ui/files/shared/ui/tabs/src/lib/hlm-tabs.ts +24 -0
  388. package/dist/generators/ui/files/shared/ui/textarea/src/index.ts +5 -0
  389. package/dist/generators/ui/files/shared/ui/textarea/src/lib/hlm-textarea.ts +21 -0
  390. package/dist/generators/ui/files/shared/ui/theme-switcher/theme-switcher.ts +29 -0
  391. package/dist/generators/ui/files/shared/ui/toggle/src/index.ts +5 -0
  392. package/dist/generators/ui/files/shared/ui/toggle/src/lib/hlm-toggle.ts +52 -0
  393. package/dist/generators/ui/files/shared/ui/toggle-group/src/index.ts +8 -0
  394. package/dist/generators/ui/files/shared/ui/toggle-group/src/lib/hlm-toggle-group-item.ts +41 -0
  395. package/dist/generators/ui/files/shared/ui/toggle-group/src/lib/hlm-toggle-group.token.ts +12 -0
  396. package/dist/generators/ui/files/shared/ui/toggle-group/src/lib/hlm-toggle-group.ts +39 -0
  397. package/dist/generators/ui/files/shared/ui/tooltip/src/index.ts +5 -0
  398. package/dist/generators/ui/files/shared/ui/tooltip/src/lib/hlm-tooltip.ts +44 -0
  399. package/dist/generators/ui/files/shared/ui/typography/src/index.ts +40 -0
  400. package/dist/generators/ui/files/shared/ui/typography/src/lib/hlm-blockquote.ts +13 -0
  401. package/dist/generators/ui/files/shared/ui/typography/src/lib/hlm-code.ts +14 -0
  402. package/dist/generators/ui/files/shared/ui/typography/src/lib/hlm-h1.ts +13 -0
  403. package/dist/generators/ui/files/shared/ui/typography/src/lib/hlm-h2.ts +14 -0
  404. package/dist/generators/ui/files/shared/ui/typography/src/lib/hlm-h3.ts +13 -0
  405. package/dist/generators/ui/files/shared/ui/typography/src/lib/hlm-h4.ts +13 -0
  406. package/dist/generators/ui/files/shared/ui/typography/src/lib/hlm-large.ts +13 -0
  407. package/dist/generators/ui/files/shared/ui/typography/src/lib/hlm-lead.ts +13 -0
  408. package/dist/generators/ui/files/shared/ui/typography/src/lib/hlm-muted.ts +13 -0
  409. package/dist/generators/ui/files/shared/ui/typography/src/lib/hlm-p.ts +13 -0
  410. package/dist/generators/ui/files/shared/ui/typography/src/lib/hlm-small.ts +13 -0
  411. package/dist/generators/ui/files/shared/ui/typography/src/lib/hlm-ul.ts +13 -0
  412. package/dist/generators/ui/files/shared/ui/user-menu/user-menu.html +64 -0
  413. package/dist/generators/ui/files/shared/ui/user-menu/user-menu.scss +3 -0
  414. package/dist/generators/ui/files/shared/ui/user-menu/user-menu.ts +30 -0
  415. package/dist/generators/ui/files/shared/ui/utils/src/index.ts +2 -0
  416. package/dist/generators/ui/files/shared/ui/utils/src/lib/hlm.ts +313 -0
  417. package/dist/generators/ui/files/shared/ui/utils/src/lib/provide-spartan-hlm.ts +34 -0
  418. package/dist/generators/ui/lib/npm-deps.d.ts +21 -0
  419. package/dist/generators/ui/lib/npm-deps.d.ts.map +1 -0
  420. package/dist/generators/ui/lib/npm-deps.js +79 -0
  421. package/dist/generators/ui/lib/resolve-deps.d.ts +25 -0
  422. package/dist/generators/ui/lib/resolve-deps.d.ts.map +1 -0
  423. package/dist/generators/ui/lib/resolve-deps.js +75 -0
  424. package/dist/generators/ui/schema.d.ts +14 -0
  425. package/dist/generators/ui/schema.json +42 -0
  426. package/dist/generators/ui/ui.d.ts +4 -0
  427. package/dist/generators/ui/ui.d.ts.map +1 -0
  428. package/dist/generators/ui/ui.js +84 -0
  429. package/dist/index.d.ts +2 -0
  430. package/dist/index.d.ts.map +1 -0
  431. package/dist/index.js +2 -0
  432. package/dist/tsconfig.lib.tsbuildinfo +1 -0
  433. package/generators.json +12 -0
  434. package/package.json +75 -4
@@ -0,0 +1,313 @@
1
+ import { isPlatformBrowser } from '@angular/common';
2
+ import {
3
+ DestroyRef,
4
+ effect,
5
+ ElementRef,
6
+ HostAttributeToken,
7
+ inject,
8
+ Injector,
9
+ PLATFORM_ID,
10
+ runInInjectionContext,
11
+ } from '@angular/core';
12
+ import { type ClassValue, clsx } from 'clsx';
13
+ import { twMerge } from 'tailwind-merge';
14
+
15
+ export function hlm(...inputs: ClassValue[]) {
16
+ return twMerge(clsx(inputs));
17
+ }
18
+
19
+ // Global map to track class managers per element
20
+ const elementClassManagers = new WeakMap<HTMLElement, ElementClassManager>();
21
+ // Global mutation observer for all elements
22
+ let globalObserver: MutationObserver | null = null;
23
+ const observedElements = new Set<HTMLElement>();
24
+
25
+ interface ElementClassManager {
26
+ element: HTMLElement;
27
+ sources: Map<number, { classes: Set<string>; order: number }>;
28
+ baseClasses: Set<string>;
29
+ isUpdating: boolean;
30
+ nextOrder: number;
31
+ hasInitialized: boolean;
32
+ restoreRafId: number | null;
33
+ /** Transitions are suppressed until the first effect writes correct classes */
34
+ transitionsSuppressed: boolean;
35
+ /** Original inline transition value to restore after suppression (empty string = none was set) */
36
+ previousTransition: string;
37
+ /** Original inline transition priority to preserve !important when restoring */
38
+ previousTransitionPriority: string;
39
+ }
40
+
41
+ let sourceCounter = 0;
42
+
43
+ /**
44
+ * This function dynamically adds and removes classes for a given element without requiring
45
+ * the a class binding (e.g. `[class]="..."`) which may interfere with other class bindings.
46
+ *
47
+ * 1. This will merge the existing classes on the element with the new classes.
48
+ * 2. It will also remove any classes that were previously added by this function but are no longer present in the new classes.
49
+ * 3. Multiple calls to this function on the same element will be merged efficiently.
50
+ */
51
+ export function classes(computed: () => ClassValue[] | string, options: ClassesOptions = {}) {
52
+ runInInjectionContext(options.injector ?? inject(Injector), () => {
53
+ const elementRef = options.elementRef ?? inject(ElementRef);
54
+ const platformId = inject(PLATFORM_ID);
55
+ const destroyRef = inject(DestroyRef);
56
+ const baseClasses = inject(new HostAttributeToken('class'), { optional: true });
57
+
58
+ const element = elementRef.nativeElement;
59
+
60
+ // Create unique identifier for this source
61
+ const sourceId = sourceCounter++;
62
+
63
+ // Get or create the class manager for this element
64
+ let manager = elementClassManagers.get(element);
65
+
66
+ if (!manager) {
67
+ // Initialize base classes from variation (host attribute 'class')
68
+ const initialBaseClasses = new Set<string>();
69
+
70
+ if (baseClasses) {
71
+ toClassList(baseClasses).forEach((cls) => initialBaseClasses.add(cls));
72
+ }
73
+
74
+ manager = {
75
+ element,
76
+ sources: new Map(),
77
+ baseClasses: initialBaseClasses,
78
+ isUpdating: false,
79
+ nextOrder: 0,
80
+ hasInitialized: false,
81
+ restoreRafId: null,
82
+ transitionsSuppressed: false,
83
+ previousTransition: '',
84
+ previousTransitionPriority: '',
85
+ };
86
+ elementClassManagers.set(element, manager);
87
+
88
+ // Setup global observer if needed and register this element
89
+ setupGlobalObserver(platformId);
90
+ observedElements.add(element);
91
+
92
+ // Suppress transitions until the first effect writes correct classes and
93
+ // the browser has painted them. This prevents CSS transition animations
94
+ // during hydration when classes change from SSR state to client state.
95
+ if (isPlatformBrowser(platformId)) {
96
+ manager.previousTransition = element.style.getPropertyValue('transition');
97
+ manager.previousTransitionPriority = element.style.getPropertyPriority('transition');
98
+ element.style.setProperty('transition', 'none', 'important');
99
+ manager.transitionsSuppressed = true;
100
+ }
101
+ }
102
+
103
+ // Assign order once at registration time
104
+ const sourceOrder = manager.nextOrder++;
105
+
106
+ function updateClasses(): void {
107
+ // Get the new classes from the computed function
108
+ const newClasses = toClassList(computed());
109
+
110
+ // Update this source's classes, keeping the original order
111
+ manager!.sources.set(sourceId, {
112
+ classes: new Set(newClasses),
113
+ order: sourceOrder,
114
+ });
115
+
116
+ // Update the element
117
+ updateElement(manager!);
118
+
119
+ // Re-enable transitions after the first effect writes correct classes.
120
+ // Deferred to next animation frame so the browser paints the class change
121
+ // with transitions disabled first, then re-enables them.
122
+ if (manager!.transitionsSuppressed) {
123
+ manager!.transitionsSuppressed = false;
124
+ manager!.restoreRafId = requestAnimationFrame(() => {
125
+ manager!.restoreRafId = null;
126
+ restoreTransitionSuppression(manager!);
127
+ });
128
+ }
129
+ }
130
+
131
+ // Register cleanup with DestroyRef
132
+ destroyRef.onDestroy(() => {
133
+ if (manager!.restoreRafId !== null) {
134
+ cancelAnimationFrame(manager!.restoreRafId);
135
+ manager!.restoreRafId = null;
136
+ }
137
+
138
+ if (manager!.transitionsSuppressed) {
139
+ manager!.transitionsSuppressed = false;
140
+ restoreTransitionSuppression(manager!);
141
+ }
142
+
143
+ // Remove this source from the manager
144
+ manager!.sources.delete(sourceId);
145
+
146
+ // If no more sources, clean up the manager
147
+ if (manager!.sources.size === 0) {
148
+ cleanupManager(element);
149
+ } else {
150
+ // Update element without this source's classes
151
+ updateElement(manager!);
152
+ }
153
+ });
154
+
155
+ /**
156
+ * We need this effect to track changes to the computed classes. Ideally, we would use
157
+ * afterRenderEffect here, but that doesn't run in SSR contexts, so we use a standard
158
+ * effect which works in both browser and SSR.
159
+ */
160
+ effect(updateClasses);
161
+ });
162
+ }
163
+
164
+ function restoreTransitionSuppression(manager: ElementClassManager): void {
165
+ const prev = manager.previousTransition;
166
+ if (prev) {
167
+ manager.element.style.setProperty(
168
+ 'transition',
169
+ prev,
170
+ manager.previousTransitionPriority || undefined,
171
+ );
172
+ } else {
173
+ manager.element.style.removeProperty('transition');
174
+ }
175
+ }
176
+
177
+ // eslint-disable-next-line @typescript-eslint/no-wrapper-object-types
178
+ function setupGlobalObserver(platformId: Object): void {
179
+ if (isPlatformBrowser(platformId) && !globalObserver) {
180
+ // Create single global observer that watches the entire document
181
+ globalObserver = new MutationObserver((mutations) => {
182
+ for (const mutation of mutations) {
183
+ if (mutation.type === 'attributes' && mutation.attributeName === 'class') {
184
+ const element = mutation.target as HTMLElement;
185
+ const manager = elementClassManagers.get(element);
186
+
187
+ // Only process elements we're managing
188
+ if (manager && observedElements.has(element)) {
189
+ if (manager.isUpdating) continue; // Ignore changes we're making
190
+
191
+ // Update base classes to include any externally added classes
192
+ const currentClasses = toClassList(element.className);
193
+ const allSourceClasses = new Set<string>();
194
+
195
+ // Collect all classes from all sources
196
+ for (const source of manager.sources.values()) {
197
+ for (const className of source.classes) {
198
+ allSourceClasses.add(className);
199
+ }
200
+ }
201
+
202
+ // Any classes not from sources become new base classes
203
+ manager.baseClasses.clear();
204
+
205
+ for (const className of currentClasses) {
206
+ if (!allSourceClasses.has(className)) {
207
+ manager.baseClasses.add(className);
208
+ }
209
+ }
210
+
211
+ updateElement(manager);
212
+ }
213
+ }
214
+ }
215
+ });
216
+
217
+ // Start observing the entire document for class attribute changes
218
+ globalObserver.observe(document, {
219
+ attributes: true,
220
+ attributeFilter: ['class'],
221
+ subtree: true, // Watch all descendants
222
+ });
223
+ }
224
+ }
225
+
226
+ function updateElement(manager: ElementClassManager): void {
227
+ if (manager.isUpdating) return; // Prevent recursive updates
228
+
229
+ manager.isUpdating = true;
230
+
231
+ // Handle initialization: capture base classes after first source registration
232
+ if (!manager.hasInitialized && manager.sources.size > 0) {
233
+ // Get current classes on element (may include SSR classes)
234
+ const currentClasses = toClassList(manager.element.className);
235
+
236
+ // Get all classes that will be applied by sources
237
+ const allSourceClasses = new Set<string>();
238
+ for (const source of manager.sources.values()) {
239
+ source.classes.forEach((className) => allSourceClasses.add(className));
240
+ }
241
+
242
+ // Only consider classes as "base" if they're not produced by any source
243
+ // This prevents SSR-rendered classes from being preserved as base classes
244
+ currentClasses.forEach((className) => {
245
+ if (!allSourceClasses.has(className)) {
246
+ manager.baseClasses.add(className);
247
+ }
248
+ });
249
+
250
+ manager.hasInitialized = true;
251
+ }
252
+
253
+ // Get classes from all sources, sorted by registration order (later takes precedence)
254
+ const sortedSources = Array.from(manager.sources.entries()).sort(
255
+ ([, a], [, b]) => a.order - b.order,
256
+ );
257
+
258
+ const allSourceClasses: string[] = [];
259
+ for (const [, source] of sortedSources) {
260
+ allSourceClasses.push(...source.classes);
261
+ }
262
+
263
+ // Combine base classes with all source classes, ensuring base classes take precedence
264
+ const classesToApply =
265
+ allSourceClasses.length > 0 || manager.baseClasses.size > 0
266
+ ? hlm([...allSourceClasses, ...manager.baseClasses])
267
+ : '';
268
+
269
+ // Apply the classes to the element
270
+ if (manager.element.className !== classesToApply) {
271
+ manager.element.className = classesToApply;
272
+ }
273
+
274
+ manager.isUpdating = false;
275
+ }
276
+
277
+ function cleanupManager(element: HTMLElement): void {
278
+ // Remove from global tracking
279
+ observedElements.delete(element);
280
+ elementClassManagers.delete(element);
281
+
282
+ // If no more elements being tracked, cleanup global observer
283
+ if (observedElements.size === 0 && globalObserver) {
284
+ globalObserver.disconnect();
285
+ globalObserver = null;
286
+ }
287
+ }
288
+
289
+ interface ClassesOptions {
290
+ elementRef?: ElementRef<HTMLElement>;
291
+ injector?: Injector;
292
+ }
293
+
294
+ // Cache for parsed class lists to avoid repeated string operations
295
+ const classListCache = new Map<string, string[]>();
296
+
297
+ function toClassList(className: string | ClassValue[]): string[] {
298
+ // For simple string inputs, use cache to avoid repeated parsing
299
+ if (typeof className === 'string' && classListCache.has(className)) {
300
+ return classListCache.get(className)!;
301
+ }
302
+
303
+ const result = clsx(className)
304
+ .split(' ')
305
+ .filter((c) => c.length > 0);
306
+
307
+ // Cache string results, but limit cache size to prevent memory growth
308
+ if (typeof className === 'string' && classListCache.size < 1000) {
309
+ classListCache.set(className, result);
310
+ }
311
+
312
+ return result;
313
+ }
@@ -0,0 +1,34 @@
1
+ import { OVERLAY_DEFAULT_CONFIG } from '@angular/cdk/overlay';
2
+ import { type EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';
3
+
4
+ /**
5
+ * Provides default configuration for Spartan Helm components.
6
+ *
7
+ * This utility configures the Angular CDK overlay to disable the `usePopover`
8
+ * behavior introduced in Angular 21, which causes CDK overlay-based components
9
+ * (sheets, dialogs, tooltips, etc.) to render above `position: fixed` elements
10
+ * like `<hlm-toaster>`.
11
+ *
12
+ * @returns {EnvironmentProviders} Environment providers to be added to the application config.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * // app.config.ts
17
+ * import { provideSpartanHlm } from '@spartan-ng/helm/utils';
18
+ *
19
+ * export const appConfig: ApplicationConfig = {
20
+ * providers: [
21
+ * provideSpartanHlm(),
22
+ * // ... other providers
23
+ * ],
24
+ * };
25
+ * ```
26
+ */
27
+ export function provideSpartanHlm(): EnvironmentProviders {
28
+ return makeEnvironmentProviders([
29
+ {
30
+ provide: OVERLAY_DEFAULT_CONFIG,
31
+ useValue: { usePopover: false },
32
+ },
33
+ ]);
34
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * npm packages a synced UI component may import, mapped to the range the
3
+ * generated project should pin. `@spartan-ng/brain` covers every `@spartan-ng/brain/*`
4
+ * subpath (one package, many entry points). `@angular/*`, `clsx` type-only, `rxjs`
5
+ * etc. are provided by the Angular app itself and are intentionally absent.
6
+ *
7
+ * `@spartan-ng/brain` is pinned to the exact minor verified against our copied
8
+ * component sources, not left wide open at `^1.0.0` — a real break was found
9
+ * (and fixed) where a fresh install resolved 1.9.0, whose `BrnAvatar` shape
10
+ * had changed from 1.3.2 (content-child `_image()` removed in favor of a
11
+ * public `status()` signal) and broke `HlmAvatar`'s template. `^1.0.0` lets
12
+ * any future 1.x minor silently reintroduce the same class of break.
13
+ */
14
+ export declare const UI_NPM_DEPS: Record<string, string>;
15
+ /**
16
+ * Scan the given components' source for third-party imports and return the
17
+ * `{ package: range }` map the generated project needs. Only real `from '...'`
18
+ * specifiers count — doc-comment mentions do not.
19
+ */
20
+ export declare function npmDepsForComponents(names: string[]): Record<string, string>;
21
+ //# sourceMappingURL=npm-deps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-deps.d.ts","sourceRoot":"","sources":["file:///D:/blueprint-platform/packages/components/src/generators/ui/lib/npm-deps.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAU9C,CAAC;AA2BF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgB5E"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UI_NPM_DEPS = void 0;
4
+ exports.npmDepsForComponents = npmDepsForComponents;
5
+ const fs_1 = require("fs");
6
+ const path_1 = require("path");
7
+ const resolve_deps_1 = require("./resolve-deps");
8
+ /**
9
+ * npm packages a synced UI component may import, mapped to the range the
10
+ * generated project should pin. `@spartan-ng/brain` covers every `@spartan-ng/brain/*`
11
+ * subpath (one package, many entry points). `@angular/*`, `clsx` type-only, `rxjs`
12
+ * etc. are provided by the Angular app itself and are intentionally absent.
13
+ *
14
+ * `@spartan-ng/brain` is pinned to the exact minor verified against our copied
15
+ * component sources, not left wide open at `^1.0.0` — a real break was found
16
+ * (and fixed) where a fresh install resolved 1.9.0, whose `BrnAvatar` shape
17
+ * had changed from 1.3.2 (content-child `_image()` removed in favor of a
18
+ * public `status()` signal) and broke `HlmAvatar`'s template. `^1.0.0` lets
19
+ * any future 1.x minor silently reintroduce the same class of break.
20
+ */
21
+ exports.UI_NPM_DEPS = {
22
+ '@spartan-ng/brain': '^1.9.0',
23
+ '@ng-icons/core': '^32.0.0',
24
+ '@ng-icons/lucide': '^32.0.0',
25
+ 'class-variance-authority': '^0.7.0',
26
+ clsx: '^2.1.0',
27
+ 'tailwind-merge': '^2.5.0',
28
+ 'embla-carousel': '^8.0.0',
29
+ 'embla-carousel-angular': '^22.0.0',
30
+ 'ngx-scrollbar': '^19.1.0',
31
+ };
32
+ /** Bare module specifiers matched against `from '<spec>'` in a component's source. */
33
+ const SPECIFIER_TO_PKG = [
34
+ { test: /^@spartan-ng\/brain(\/|$)/, pkg: '@spartan-ng/brain' },
35
+ { test: /^@ng-icons\/core(\/|$)/, pkg: '@ng-icons/core' },
36
+ { test: /^@ng-icons\/lucide(\/|$)/, pkg: '@ng-icons/lucide' },
37
+ { test: /^class-variance-authority(\/|$)/, pkg: 'class-variance-authority' },
38
+ { test: /^clsx(\/|$)/, pkg: 'clsx' },
39
+ { test: /^tailwind-merge(\/|$)/, pkg: 'tailwind-merge' },
40
+ { test: /^embla-carousel-angular(\/|$)/, pkg: 'embla-carousel-angular' },
41
+ { test: /^embla-carousel(\/|$)/, pkg: 'embla-carousel' },
42
+ { test: /^ngx-scrollbar(\/|$)/, pkg: 'ngx-scrollbar' },
43
+ ];
44
+ const IMPORT_RE = /(?:import|export)[^'"]*?from\s*['"]([^'"]+)['"]/g;
45
+ function tsFilesOf(dir) {
46
+ const out = [];
47
+ for (const entry of (0, fs_1.readdirSync)(dir)) {
48
+ const full = (0, path_1.join)(dir, entry);
49
+ if ((0, fs_1.statSync)(full).isDirectory())
50
+ out.push(...tsFilesOf(full));
51
+ else if (entry.endsWith('.ts'))
52
+ out.push(full);
53
+ }
54
+ return out;
55
+ }
56
+ /**
57
+ * Scan the given components' source for third-party imports and return the
58
+ * `{ package: range }` map the generated project needs. Only real `from '...'`
59
+ * specifiers count — doc-comment mentions do not.
60
+ */
61
+ function npmDepsForComponents(names) {
62
+ const found = new Set();
63
+ for (const name of names) {
64
+ for (const file of tsFilesOf((0, path_1.join)(resolve_deps_1.UI_FILES_DIR, name))) {
65
+ const src = (0, fs_1.readFileSync)(file, 'utf-8');
66
+ let m;
67
+ while ((m = IMPORT_RE.exec(src)) !== null) {
68
+ const spec = m[1];
69
+ const hit = SPECIFIER_TO_PKG.find((s) => s.test.test(spec));
70
+ if (hit)
71
+ found.add(hit.pkg);
72
+ }
73
+ }
74
+ }
75
+ const result = {};
76
+ for (const pkg of found)
77
+ result[pkg] = exports.UI_NPM_DEPS[pkg];
78
+ return result;
79
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * The bundled component sources. At runtime this file is
3
+ * `dist/generators/ui/lib/resolve-deps.js`, so the payload sits one level up.
4
+ */
5
+ export declare const UI_FILES_DIR: string;
6
+ /**
7
+ * Components with no `src/index.ts` barrel — copied as a single flat file and
8
+ * consumed via relative imports, so they never get a `@blueprint-platform/ui/<name>`
9
+ * tsconfig path.
10
+ */
11
+ export declare const FLAT_COMPONENTS: string[];
12
+ /** Every component folder that ships with the package. */
13
+ export declare function listAllComponents(): string[];
14
+ export declare function componentExists(name: string): boolean;
15
+ /** Direct in-kit dependencies of one component. */
16
+ export declare function directDeps(name: string): string[];
17
+ /**
18
+ * Breadth-first transitive closure of the requested components over their
19
+ * in-kit dependencies. Unknown names are returned in `missing`.
20
+ */
21
+ export declare function resolveClosure(requested: string[]): {
22
+ closure: string[];
23
+ missing: string[];
24
+ };
25
+ //# sourceMappingURL=resolve-deps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-deps.d.ts","sourceRoot":"","sources":["file:///D:/blueprint-platform/packages/components/src/generators/ui/lib/resolve-deps.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,YAAY,QAAiD,CAAC;AAE3E;;;;GAIG;AACH,eAAO,MAAM,eAAe,UAAuD,CAAC;AAEpF,0DAA0D;AAC1D,wBAAgB,iBAAiB,IAAI,MAAM,EAAE,CAI5C;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAYD,mDAAmD;AACnD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAcjD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG;IACnD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAWA"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FLAT_COMPONENTS = exports.UI_FILES_DIR = void 0;
4
+ exports.listAllComponents = listAllComponents;
5
+ exports.componentExists = componentExists;
6
+ exports.directDeps = directDeps;
7
+ exports.resolveClosure = resolveClosure;
8
+ const fs_1 = require("fs");
9
+ const path_1 = require("path");
10
+ /**
11
+ * The bundled component sources. At runtime this file is
12
+ * `dist/generators/ui/lib/resolve-deps.js`, so the payload sits one level up.
13
+ */
14
+ exports.UI_FILES_DIR = (0, path_1.join)(__dirname, '..', 'files', 'shared', 'ui');
15
+ /**
16
+ * Components with no `src/index.ts` barrel — copied as a single flat file and
17
+ * consumed via relative imports, so they never get a `@blueprint-platform/ui/<name>`
18
+ * tsconfig path.
19
+ */
20
+ exports.FLAT_COMPONENTS = ['user-menu', 'theme-switcher', 'language-switcher'];
21
+ /** Every component folder that ships with the package. */
22
+ function listAllComponents() {
23
+ return (0, fs_1.readdirSync)(exports.UI_FILES_DIR).filter((name) => (0, fs_1.statSync)((0, path_1.join)(exports.UI_FILES_DIR, name)).isDirectory());
24
+ }
25
+ function componentExists(name) {
26
+ return (0, fs_1.existsSync)((0, path_1.join)(exports.UI_FILES_DIR, name));
27
+ }
28
+ function tsFilesOf(dir) {
29
+ const out = [];
30
+ for (const entry of (0, fs_1.readdirSync)(dir)) {
31
+ const full = (0, path_1.join)(dir, entry);
32
+ if ((0, fs_1.statSync)(full).isDirectory())
33
+ out.push(...tsFilesOf(full));
34
+ else if (entry.endsWith('.ts'))
35
+ out.push(full);
36
+ }
37
+ return out;
38
+ }
39
+ /** Direct in-kit dependencies of one component. */
40
+ function directDeps(name) {
41
+ const deps = new Set();
42
+ for (const file of tsFilesOf((0, path_1.join)(exports.UI_FILES_DIR, name))) {
43
+ const src = (0, fs_1.readFileSync)(file, 'utf-8');
44
+ // `@blueprint-platform/ui/<dep>` — the aliased barrel imports.
45
+ for (const m of src.matchAll(/@blueprint-platform\/ui\/([a-z0-9-]+)/g)) {
46
+ if (m[1] !== name)
47
+ deps.add(m[1]);
48
+ }
49
+ // Flat-family siblings imported relatively, e.g. `from '../theme-switcher/theme-switcher'`.
50
+ for (const m of src.matchAll(/from\s+['"]\.\.\/([a-z0-9-]+)\/[^'"]+['"]/g)) {
51
+ if (m[1] !== name && componentExists(m[1]))
52
+ deps.add(m[1]);
53
+ }
54
+ }
55
+ return [...deps];
56
+ }
57
+ /**
58
+ * Breadth-first transitive closure of the requested components over their
59
+ * in-kit dependencies. Unknown names are returned in `missing`.
60
+ */
61
+ function resolveClosure(requested) {
62
+ const missing = requested.filter((n) => !componentExists(n));
63
+ const seen = new Set();
64
+ const queue = requested.filter((n) => componentExists(n));
65
+ while (queue.length) {
66
+ const name = queue.shift();
67
+ if (seen.has(name))
68
+ continue;
69
+ seen.add(name);
70
+ for (const dep of directDeps(name))
71
+ if (!seen.has(dep))
72
+ queue.push(dep);
73
+ }
74
+ return { closure: [...seen], missing };
75
+ }
@@ -0,0 +1,14 @@
1
+ export interface UiGeneratorSchema {
2
+ /** Component name(s) — comma or space separated. Ignored when `all` is true. */
3
+ components?: string;
4
+ /** Add every available UI component not already in the project. */
5
+ all?: boolean;
6
+ /** Print every available component name and exit without writing anything. */
7
+ list?: boolean;
8
+ /** Project root to add components into. */
9
+ project?: string;
10
+ /** Skip Prettier. */
11
+ skipFormat?: boolean;
12
+ /** Skip installing newly added npm dependencies. */
13
+ skipInstall?: boolean;
14
+ }
@@ -0,0 +1,42 @@
1
+ {
2
+ "$schema": "https://json-schema.org/schema",
3
+ "cli": "nx",
4
+ "$id": "BlueprintComponentsUi",
5
+ "title": "Add Blueprint UI components",
6
+ "description": "Copy one or more spartan-derived UI components (and their dependencies) into an existing Blueprint project.",
7
+ "type": "object",
8
+ "properties": {
9
+ "components": {
10
+ "type": "string",
11
+ "description": "Component name(s) to add — comma or space separated (e.g. \"carousel,accordion\").",
12
+ "$default": { "$source": "argv", "index": 0 },
13
+ "x-prompt": "Which UI component(s) do you want to add?"
14
+ },
15
+ "all": {
16
+ "type": "boolean",
17
+ "description": "Add every available UI component not already present in the project.",
18
+ "default": false
19
+ },
20
+ "list": {
21
+ "type": "boolean",
22
+ "description": "Print every available UI component name and exit without writing anything.",
23
+ "default": false
24
+ },
25
+ "project": {
26
+ "type": "string",
27
+ "description": "Path to the project root to add components into.",
28
+ "default": "."
29
+ },
30
+ "skipFormat": {
31
+ "type": "boolean",
32
+ "description": "Skip running Prettier on the touched files.",
33
+ "default": false
34
+ },
35
+ "skipInstall": {
36
+ "type": "boolean",
37
+ "description": "Skip installing newly added npm dependencies.",
38
+ "default": false
39
+ }
40
+ },
41
+ "required": []
42
+ }
@@ -0,0 +1,4 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { UiGeneratorSchema } from './schema';
3
+ export default function uiGenerator(tree: Tree, options: UiGeneratorSchema): Promise<(() => void) | undefined>;
4
+ //# sourceMappingURL=ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["file:///D:/blueprint-platform/packages/components/src/generators/ui/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EAOL,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAgB7C,wBAA8B,WAAW,CACvC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,iBAAiB,qCA6F3B"}