@lifecorner/angular-ui-kit 3.4.1 → 3.5.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 (340) hide show
  1. package/README.md +12 -2
  2. package/fesm2022/lifecorner-angular-ui-kit-accordion.mjs +454 -0
  3. package/fesm2022/lifecorner-angular-ui-kit-accordion.mjs.map +1 -0
  4. package/fesm2022/lifecorner-angular-ui-kit-alert.mjs +297 -0
  5. package/fesm2022/lifecorner-angular-ui-kit-alert.mjs.map +1 -0
  6. package/fesm2022/lifecorner-angular-ui-kit-app-shell.mjs +190 -0
  7. package/fesm2022/lifecorner-angular-ui-kit-app-shell.mjs.map +1 -0
  8. package/fesm2022/lifecorner-angular-ui-kit-area-chart.mjs +446 -0
  9. package/fesm2022/lifecorner-angular-ui-kit-area-chart.mjs.map +1 -0
  10. package/fesm2022/lifecorner-angular-ui-kit-avatar-group.mjs +158 -0
  11. package/fesm2022/lifecorner-angular-ui-kit-avatar-group.mjs.map +1 -0
  12. package/fesm2022/lifecorner-angular-ui-kit-avatar.mjs +216 -0
  13. package/fesm2022/lifecorner-angular-ui-kit-avatar.mjs.map +1 -0
  14. package/fesm2022/lifecorner-angular-ui-kit-badge.mjs +121 -0
  15. package/fesm2022/lifecorner-angular-ui-kit-badge.mjs.map +1 -0
  16. package/fesm2022/lifecorner-angular-ui-kit-bar-chart.mjs +360 -0
  17. package/fesm2022/lifecorner-angular-ui-kit-bar-chart.mjs.map +1 -0
  18. package/fesm2022/lifecorner-angular-ui-kit-bottom-nav.mjs +344 -0
  19. package/fesm2022/lifecorner-angular-ui-kit-bottom-nav.mjs.map +1 -0
  20. package/fesm2022/lifecorner-angular-ui-kit-breadcrumbs.mjs +191 -0
  21. package/fesm2022/lifecorner-angular-ui-kit-breadcrumbs.mjs.map +1 -0
  22. package/fesm2022/lifecorner-angular-ui-kit-button.mjs +423 -0
  23. package/fesm2022/lifecorner-angular-ui-kit-button.mjs.map +1 -0
  24. package/fesm2022/lifecorner-angular-ui-kit-calendar.mjs +368 -0
  25. package/fesm2022/lifecorner-angular-ui-kit-calendar.mjs.map +1 -0
  26. package/fesm2022/lifecorner-angular-ui-kit-callout.mjs +203 -0
  27. package/fesm2022/lifecorner-angular-ui-kit-callout.mjs.map +1 -0
  28. package/fesm2022/lifecorner-angular-ui-kit-card.mjs +323 -0
  29. package/fesm2022/lifecorner-angular-ui-kit-card.mjs.map +1 -0
  30. package/fesm2022/lifecorner-angular-ui-kit-chat.mjs +790 -0
  31. package/fesm2022/lifecorner-angular-ui-kit-chat.mjs.map +1 -0
  32. package/fesm2022/lifecorner-angular-ui-kit-checkbox.mjs +325 -0
  33. package/fesm2022/lifecorner-angular-ui-kit-checkbox.mjs.map +1 -0
  34. package/fesm2022/lifecorner-angular-ui-kit-chip.mjs +214 -0
  35. package/fesm2022/lifecorner-angular-ui-kit-chip.mjs.map +1 -0
  36. package/fesm2022/lifecorner-angular-ui-kit-choice-prompt.mjs +375 -0
  37. package/fesm2022/lifecorner-angular-ui-kit-choice-prompt.mjs.map +1 -0
  38. package/fesm2022/lifecorner-angular-ui-kit-code-block.mjs +518 -0
  39. package/fesm2022/lifecorner-angular-ui-kit-code-block.mjs.map +1 -0
  40. package/fesm2022/lifecorner-angular-ui-kit-color-picker.mjs +278 -0
  41. package/fesm2022/lifecorner-angular-ui-kit-color-picker.mjs.map +1 -0
  42. package/fesm2022/lifecorner-angular-ui-kit-combobox.mjs +688 -0
  43. package/fesm2022/lifecorner-angular-ui-kit-combobox.mjs.map +1 -0
  44. package/fesm2022/lifecorner-angular-ui-kit-confirm-dialog.mjs +494 -0
  45. package/fesm2022/lifecorner-angular-ui-kit-confirm-dialog.mjs.map +1 -0
  46. package/fesm2022/lifecorner-angular-ui-kit-container.mjs +103 -0
  47. package/fesm2022/lifecorner-angular-ui-kit-container.mjs.map +1 -0
  48. package/fesm2022/lifecorner-angular-ui-kit-copy-field.mjs +308 -0
  49. package/fesm2022/lifecorner-angular-ui-kit-copy-field.mjs.map +1 -0
  50. package/fesm2022/lifecorner-angular-ui-kit-date-range-picker.mjs +466 -0
  51. package/fesm2022/lifecorner-angular-ui-kit-date-range-picker.mjs.map +1 -0
  52. package/fesm2022/lifecorner-angular-ui-kit-datepicker.mjs +810 -0
  53. package/fesm2022/lifecorner-angular-ui-kit-datepicker.mjs.map +1 -0
  54. package/fesm2022/lifecorner-angular-ui-kit-dependency-viewer.mjs +1761 -0
  55. package/fesm2022/lifecorner-angular-ui-kit-dependency-viewer.mjs.map +1 -0
  56. package/fesm2022/lifecorner-angular-ui-kit-description-list.mjs +165 -0
  57. package/fesm2022/lifecorner-angular-ui-kit-description-list.mjs.map +1 -0
  58. package/fesm2022/lifecorner-angular-ui-kit-diff-viewer.mjs +356 -0
  59. package/fesm2022/lifecorner-angular-ui-kit-diff-viewer.mjs.map +1 -0
  60. package/fesm2022/lifecorner-angular-ui-kit-divider.mjs +119 -0
  61. package/fesm2022/lifecorner-angular-ui-kit-divider.mjs.map +1 -0
  62. package/fesm2022/lifecorner-angular-ui-kit-document-viewer.mjs +762 -0
  63. package/fesm2022/lifecorner-angular-ui-kit-document-viewer.mjs.map +1 -0
  64. package/fesm2022/lifecorner-angular-ui-kit-donut-chart.mjs +255 -0
  65. package/fesm2022/lifecorner-angular-ui-kit-donut-chart.mjs.map +1 -0
  66. package/fesm2022/lifecorner-angular-ui-kit-drawer.mjs +308 -0
  67. package/fesm2022/lifecorner-angular-ui-kit-drawer.mjs.map +1 -0
  68. package/fesm2022/lifecorner-angular-ui-kit-email-input.mjs +519 -0
  69. package/fesm2022/lifecorner-angular-ui-kit-email-input.mjs.map +1 -0
  70. package/fesm2022/lifecorner-angular-ui-kit-empty-state.mjs +143 -0
  71. package/fesm2022/lifecorner-angular-ui-kit-empty-state.mjs.map +1 -0
  72. package/fesm2022/lifecorner-angular-ui-kit-error-display.mjs +306 -0
  73. package/fesm2022/lifecorner-angular-ui-kit-error-display.mjs.map +1 -0
  74. package/fesm2022/lifecorner-angular-ui-kit-field-group.mjs +154 -0
  75. package/fesm2022/lifecorner-angular-ui-kit-field-group.mjs.map +1 -0
  76. package/fesm2022/lifecorner-angular-ui-kit-file-upload.mjs +281 -0
  77. package/fesm2022/lifecorner-angular-ui-kit-file-upload.mjs.map +1 -0
  78. package/fesm2022/lifecorner-angular-ui-kit-filter-bar.mjs +258 -0
  79. package/fesm2022/lifecorner-angular-ui-kit-filter-bar.mjs.map +1 -0
  80. package/fesm2022/lifecorner-angular-ui-kit-footer.mjs +200 -0
  81. package/fesm2022/lifecorner-angular-ui-kit-footer.mjs.map +1 -0
  82. package/fesm2022/lifecorner-angular-ui-kit-funnel-chart.mjs +292 -0
  83. package/fesm2022/lifecorner-angular-ui-kit-funnel-chart.mjs.map +1 -0
  84. package/fesm2022/lifecorner-angular-ui-kit-gallery.mjs +563 -0
  85. package/fesm2022/lifecorner-angular-ui-kit-gallery.mjs.map +1 -0
  86. package/fesm2022/lifecorner-angular-ui-kit-gantt-chart.mjs +314 -0
  87. package/fesm2022/lifecorner-angular-ui-kit-gantt-chart.mjs.map +1 -0
  88. package/fesm2022/lifecorner-angular-ui-kit-gauge.mjs +265 -0
  89. package/fesm2022/lifecorner-angular-ui-kit-gauge.mjs.map +1 -0
  90. package/fesm2022/lifecorner-angular-ui-kit-header.mjs +955 -0
  91. package/fesm2022/lifecorner-angular-ui-kit-header.mjs.map +1 -0
  92. package/fesm2022/lifecorner-angular-ui-kit-heatmap.mjs +305 -0
  93. package/fesm2022/lifecorner-angular-ui-kit-heatmap.mjs.map +1 -0
  94. package/fesm2022/lifecorner-angular-ui-kit-hero.mjs +168 -0
  95. package/fesm2022/lifecorner-angular-ui-kit-hero.mjs.map +1 -0
  96. package/fesm2022/lifecorner-angular-ui-kit-icon-names.mjs +9 -0
  97. package/fesm2022/lifecorner-angular-ui-kit-icon-names.mjs.map +1 -0
  98. package/fesm2022/lifecorner-angular-ui-kit-icon.mjs +1026 -0
  99. package/fesm2022/lifecorner-angular-ui-kit-icon.mjs.map +1 -0
  100. package/fesm2022/lifecorner-angular-ui-kit-input.mjs +595 -0
  101. package/fesm2022/lifecorner-angular-ui-kit-input.mjs.map +1 -0
  102. package/fesm2022/lifecorner-angular-ui-kit-internal-chart.mjs +105 -0
  103. package/fesm2022/lifecorner-angular-ui-kit-internal-chart.mjs.map +1 -0
  104. package/fesm2022/lifecorner-angular-ui-kit-internal-overlay.mjs +50 -0
  105. package/fesm2022/lifecorner-angular-ui-kit-internal-overlay.mjs.map +1 -0
  106. package/fesm2022/lifecorner-angular-ui-kit-internal-url.mjs +22 -0
  107. package/fesm2022/lifecorner-angular-ui-kit-internal-url.mjs.map +1 -0
  108. package/fesm2022/lifecorner-angular-ui-kit-kanban-board.mjs +319 -0
  109. package/fesm2022/lifecorner-angular-ui-kit-kanban-board.mjs.map +1 -0
  110. package/fesm2022/lifecorner-angular-ui-kit-line-chart.mjs +413 -0
  111. package/fesm2022/lifecorner-angular-ui-kit-line-chart.mjs.map +1 -0
  112. package/fesm2022/lifecorner-angular-ui-kit-list.mjs +338 -0
  113. package/fesm2022/lifecorner-angular-ui-kit-list.mjs.map +1 -0
  114. package/fesm2022/lifecorner-angular-ui-kit-log-viewer.mjs +813 -0
  115. package/fesm2022/lifecorner-angular-ui-kit-log-viewer.mjs.map +1 -0
  116. package/fesm2022/lifecorner-angular-ui-kit-logo.mjs +226 -0
  117. package/fesm2022/lifecorner-angular-ui-kit-logo.mjs.map +1 -0
  118. package/fesm2022/lifecorner-angular-ui-kit-markdown.mjs +756 -0
  119. package/fesm2022/lifecorner-angular-ui-kit-markdown.mjs.map +1 -0
  120. package/fesm2022/lifecorner-angular-ui-kit-menu.mjs +321 -0
  121. package/fesm2022/lifecorner-angular-ui-kit-menu.mjs.map +1 -0
  122. package/fesm2022/lifecorner-angular-ui-kit-modal.mjs +329 -0
  123. package/fesm2022/lifecorner-angular-ui-kit-modal.mjs.map +1 -0
  124. package/fesm2022/lifecorner-angular-ui-kit-models.mjs +0 -0
  125. package/fesm2022/lifecorner-angular-ui-kit-next-step-card.mjs +419 -0
  126. package/fesm2022/lifecorner-angular-ui-kit-next-step-card.mjs.map +1 -0
  127. package/fesm2022/lifecorner-angular-ui-kit-notification-center.mjs +644 -0
  128. package/fesm2022/lifecorner-angular-ui-kit-notification-center.mjs.map +1 -0
  129. package/fesm2022/lifecorner-angular-ui-kit-number-input.mjs +401 -0
  130. package/fesm2022/lifecorner-angular-ui-kit-number-input.mjs.map +1 -0
  131. package/fesm2022/lifecorner-angular-ui-kit-page-header.mjs +266 -0
  132. package/fesm2022/lifecorner-angular-ui-kit-page-header.mjs.map +1 -0
  133. package/fesm2022/lifecorner-angular-ui-kit-page-layout.mjs +127 -0
  134. package/fesm2022/lifecorner-angular-ui-kit-page-layout.mjs.map +1 -0
  135. package/fesm2022/lifecorner-angular-ui-kit-pagination.mjs +343 -0
  136. package/fesm2022/lifecorner-angular-ui-kit-pagination.mjs.map +1 -0
  137. package/fesm2022/lifecorner-angular-ui-kit-password-input.mjs +696 -0
  138. package/fesm2022/lifecorner-angular-ui-kit-password-input.mjs.map +1 -0
  139. package/fesm2022/lifecorner-angular-ui-kit-pie-chart.mjs +162 -0
  140. package/fesm2022/lifecorner-angular-ui-kit-pie-chart.mjs.map +1 -0
  141. package/fesm2022/lifecorner-angular-ui-kit-pipeline.mjs +159 -0
  142. package/fesm2022/lifecorner-angular-ui-kit-pipeline.mjs.map +1 -0
  143. package/fesm2022/lifecorner-angular-ui-kit-popover.mjs +190 -0
  144. package/fesm2022/lifecorner-angular-ui-kit-popover.mjs.map +1 -0
  145. package/fesm2022/lifecorner-angular-ui-kit-progress-bar.mjs +190 -0
  146. package/fesm2022/lifecorner-angular-ui-kit-progress-bar.mjs.map +1 -0
  147. package/fesm2022/lifecorner-angular-ui-kit-progress-ring.mjs +175 -0
  148. package/fesm2022/lifecorner-angular-ui-kit-progress-ring.mjs.map +1 -0
  149. package/fesm2022/lifecorner-angular-ui-kit-provider-button.mjs +255 -0
  150. package/fesm2022/lifecorner-angular-ui-kit-provider-button.mjs.map +1 -0
  151. package/fesm2022/lifecorner-angular-ui-kit-radar-chart.mjs +309 -0
  152. package/fesm2022/lifecorner-angular-ui-kit-radar-chart.mjs.map +1 -0
  153. package/fesm2022/lifecorner-angular-ui-kit-radio.mjs +708 -0
  154. package/fesm2022/lifecorner-angular-ui-kit-radio.mjs.map +1 -0
  155. package/fesm2022/lifecorner-angular-ui-kit-rating.mjs +327 -0
  156. package/fesm2022/lifecorner-angular-ui-kit-rating.mjs.map +1 -0
  157. package/fesm2022/lifecorner-angular-ui-kit-rich-text-editor.mjs +718 -0
  158. package/fesm2022/lifecorner-angular-ui-kit-rich-text-editor.mjs.map +1 -0
  159. package/fesm2022/lifecorner-angular-ui-kit-scatter-plot.mjs +415 -0
  160. package/fesm2022/lifecorner-angular-ui-kit-scatter-plot.mjs.map +1 -0
  161. package/fesm2022/lifecorner-angular-ui-kit-search-input.mjs +290 -0
  162. package/fesm2022/lifecorner-angular-ui-kit-search-input.mjs.map +1 -0
  163. package/fesm2022/lifecorner-angular-ui-kit-section.mjs +127 -0
  164. package/fesm2022/lifecorner-angular-ui-kit-section.mjs.map +1 -0
  165. package/fesm2022/lifecorner-angular-ui-kit-select.mjs +650 -0
  166. package/fesm2022/lifecorner-angular-ui-kit-select.mjs.map +1 -0
  167. package/fesm2022/lifecorner-angular-ui-kit-sidenav.mjs +691 -0
  168. package/fesm2022/lifecorner-angular-ui-kit-sidenav.mjs.map +1 -0
  169. package/fesm2022/lifecorner-angular-ui-kit-skeleton.mjs +144 -0
  170. package/fesm2022/lifecorner-angular-ui-kit-skeleton.mjs.map +1 -0
  171. package/fesm2022/lifecorner-angular-ui-kit-slider.mjs +204 -0
  172. package/fesm2022/lifecorner-angular-ui-kit-slider.mjs.map +1 -0
  173. package/fesm2022/lifecorner-angular-ui-kit-spacer.mjs +73 -0
  174. package/fesm2022/lifecorner-angular-ui-kit-spacer.mjs.map +1 -0
  175. package/fesm2022/lifecorner-angular-ui-kit-sparkline.mjs +318 -0
  176. package/fesm2022/lifecorner-angular-ui-kit-sparkline.mjs.map +1 -0
  177. package/fesm2022/lifecorner-angular-ui-kit-spinner.mjs +95 -0
  178. package/fesm2022/lifecorner-angular-ui-kit-spinner.mjs.map +1 -0
  179. package/fesm2022/lifecorner-angular-ui-kit-split-pane.mjs +298 -0
  180. package/fesm2022/lifecorner-angular-ui-kit-split-pane.mjs.map +1 -0
  181. package/fesm2022/lifecorner-angular-ui-kit-stack.mjs +162 -0
  182. package/fesm2022/lifecorner-angular-ui-kit-stack.mjs.map +1 -0
  183. package/fesm2022/lifecorner-angular-ui-kit-stacked-bar-chart.mjs +412 -0
  184. package/fesm2022/lifecorner-angular-ui-kit-stacked-bar-chart.mjs.map +1 -0
  185. package/fesm2022/lifecorner-angular-ui-kit-stage-list.mjs +186 -0
  186. package/fesm2022/lifecorner-angular-ui-kit-stage-list.mjs.map +1 -0
  187. package/fesm2022/lifecorner-angular-ui-kit-stat-trend.mjs +224 -0
  188. package/fesm2022/lifecorner-angular-ui-kit-stat-trend.mjs.map +1 -0
  189. package/fesm2022/lifecorner-angular-ui-kit-status-dot.mjs +122 -0
  190. package/fesm2022/lifecorner-angular-ui-kit-status-dot.mjs.map +1 -0
  191. package/fesm2022/lifecorner-angular-ui-kit-stepper.mjs +209 -0
  192. package/fesm2022/lifecorner-angular-ui-kit-stepper.mjs.map +1 -0
  193. package/fesm2022/lifecorner-angular-ui-kit-switch.mjs +249 -0
  194. package/fesm2022/lifecorner-angular-ui-kit-switch.mjs.map +1 -0
  195. package/fesm2022/lifecorner-angular-ui-kit-table.mjs +1434 -0
  196. package/fesm2022/lifecorner-angular-ui-kit-table.mjs.map +1 -0
  197. package/fesm2022/lifecorner-angular-ui-kit-tabs.mjs +407 -0
  198. package/fesm2022/lifecorner-angular-ui-kit-tabs.mjs.map +1 -0
  199. package/fesm2022/lifecorner-angular-ui-kit-tag-input.mjs +380 -0
  200. package/fesm2022/lifecorner-angular-ui-kit-tag-input.mjs.map +1 -0
  201. package/fesm2022/lifecorner-angular-ui-kit-textarea.mjs +440 -0
  202. package/fesm2022/lifecorner-angular-ui-kit-textarea.mjs.map +1 -0
  203. package/fesm2022/lifecorner-angular-ui-kit-theme.mjs +145 -0
  204. package/fesm2022/lifecorner-angular-ui-kit-theme.mjs.map +1 -0
  205. package/fesm2022/lifecorner-angular-ui-kit-timeline.mjs +262 -0
  206. package/fesm2022/lifecorner-angular-ui-kit-timeline.mjs.map +1 -0
  207. package/fesm2022/lifecorner-angular-ui-kit-toast.mjs +352 -0
  208. package/fesm2022/lifecorner-angular-ui-kit-toast.mjs.map +1 -0
  209. package/fesm2022/lifecorner-angular-ui-kit-toggle-group.mjs +215 -0
  210. package/fesm2022/lifecorner-angular-ui-kit-toggle-group.mjs.map +1 -0
  211. package/fesm2022/lifecorner-angular-ui-kit-tokens.mjs +134 -0
  212. package/fesm2022/lifecorner-angular-ui-kit-tokens.mjs.map +1 -0
  213. package/fesm2022/lifecorner-angular-ui-kit-toolbar.mjs +225 -0
  214. package/fesm2022/lifecorner-angular-ui-kit-toolbar.mjs.map +1 -0
  215. package/fesm2022/lifecorner-angular-ui-kit-tooltip.mjs +386 -0
  216. package/fesm2022/lifecorner-angular-ui-kit-tooltip.mjs.map +1 -0
  217. package/fesm2022/lifecorner-angular-ui-kit-tree-view.mjs +509 -0
  218. package/fesm2022/lifecorner-angular-ui-kit-tree-view.mjs.map +1 -0
  219. package/fesm2022/lifecorner-angular-ui-kit-typography.mjs +209 -0
  220. package/fesm2022/lifecorner-angular-ui-kit-typography.mjs.map +1 -0
  221. package/fesm2022/lifecorner-angular-ui-kit-verification-code-input.mjs +365 -0
  222. package/fesm2022/lifecorner-angular-ui-kit-verification-code-input.mjs.map +1 -0
  223. package/fesm2022/lifecorner-angular-ui-kit-waterfall-chart.mjs +371 -0
  224. package/fesm2022/lifecorner-angular-ui-kit-waterfall-chart.mjs.map +1 -0
  225. package/fesm2022/lifecorner-angular-ui-kit.mjs +109 -38925
  226. package/package.json +449 -1
  227. package/types/lifecorner-angular-ui-kit-accordion.d.ts +239 -0
  228. package/types/lifecorner-angular-ui-kit-alert.d.ts +189 -0
  229. package/types/lifecorner-angular-ui-kit-app-shell.d.ts +148 -0
  230. package/types/lifecorner-angular-ui-kit-area-chart.d.ts +180 -0
  231. package/types/lifecorner-angular-ui-kit-avatar-group.d.ts +62 -0
  232. package/types/lifecorner-angular-ui-kit-avatar.d.ts +131 -0
  233. package/types/lifecorner-angular-ui-kit-badge.d.ts +59 -0
  234. package/types/lifecorner-angular-ui-kit-bar-chart.d.ts +157 -0
  235. package/types/lifecorner-angular-ui-kit-bottom-nav.d.ts +184 -0
  236. package/types/lifecorner-angular-ui-kit-breadcrumbs.d.ts +55 -0
  237. package/types/lifecorner-angular-ui-kit-button.d.ts +181 -0
  238. package/types/lifecorner-angular-ui-kit-calendar.d.ts +136 -0
  239. package/types/lifecorner-angular-ui-kit-callout.d.ts +77 -0
  240. package/types/lifecorner-angular-ui-kit-card.d.ts +213 -0
  241. package/types/lifecorner-angular-ui-kit-chat.d.ts +379 -0
  242. package/types/lifecorner-angular-ui-kit-checkbox.d.ts +116 -0
  243. package/types/lifecorner-angular-ui-kit-chip.d.ts +104 -0
  244. package/types/lifecorner-angular-ui-kit-choice-prompt.d.ts +186 -0
  245. package/types/lifecorner-angular-ui-kit-code-block.d.ts +85 -0
  246. package/types/lifecorner-angular-ui-kit-color-picker.d.ts +88 -0
  247. package/types/lifecorner-angular-ui-kit-combobox.d.ts +222 -0
  248. package/types/lifecorner-angular-ui-kit-confirm-dialog.d.ts +211 -0
  249. package/types/lifecorner-angular-ui-kit-container.d.ts +47 -0
  250. package/types/lifecorner-angular-ui-kit-copy-field.d.ts +89 -0
  251. package/types/lifecorner-angular-ui-kit-date-range-picker.d.ts +126 -0
  252. package/types/lifecorner-angular-ui-kit-datepicker.d.ts +363 -0
  253. package/types/lifecorner-angular-ui-kit-dependency-viewer.d.ts +568 -0
  254. package/types/lifecorner-angular-ui-kit-description-list.d.ts +137 -0
  255. package/types/lifecorner-angular-ui-kit-diff-viewer.d.ts +93 -0
  256. package/types/lifecorner-angular-ui-kit-divider.d.ts +66 -0
  257. package/types/lifecorner-angular-ui-kit-document-viewer.d.ts +256 -0
  258. package/types/lifecorner-angular-ui-kit-donut-chart.d.ts +92 -0
  259. package/types/lifecorner-angular-ui-kit-drawer.d.ts +124 -0
  260. package/types/lifecorner-angular-ui-kit-email-input.d.ts +292 -0
  261. package/types/lifecorner-angular-ui-kit-empty-state.d.ts +81 -0
  262. package/types/lifecorner-angular-ui-kit-error-display.d.ts +157 -0
  263. package/types/lifecorner-angular-ui-kit-field-group.d.ts +69 -0
  264. package/types/lifecorner-angular-ui-kit-file-upload.d.ts +122 -0
  265. package/types/lifecorner-angular-ui-kit-filter-bar.d.ts +116 -0
  266. package/types/lifecorner-angular-ui-kit-footer.d.ts +97 -0
  267. package/types/lifecorner-angular-ui-kit-funnel-chart.d.ts +97 -0
  268. package/types/lifecorner-angular-ui-kit-gallery.d.ts +240 -0
  269. package/types/lifecorner-angular-ui-kit-gantt-chart.d.ts +133 -0
  270. package/types/lifecorner-angular-ui-kit-gauge.d.ts +94 -0
  271. package/types/lifecorner-angular-ui-kit-header.d.ts +496 -0
  272. package/types/lifecorner-angular-ui-kit-heatmap.d.ts +126 -0
  273. package/types/lifecorner-angular-ui-kit-hero.d.ts +121 -0
  274. package/types/lifecorner-angular-ui-kit-icon-names.d.ts +21 -0
  275. package/types/lifecorner-angular-ui-kit-icon.d.ts +260 -0
  276. package/types/lifecorner-angular-ui-kit-input.d.ts +346 -0
  277. package/types/lifecorner-angular-ui-kit-internal-chart.d.ts +86 -0
  278. package/types/lifecorner-angular-ui-kit-internal-overlay.d.ts +31 -0
  279. package/types/lifecorner-angular-ui-kit-internal-url.d.ts +22 -0
  280. package/types/lifecorner-angular-ui-kit-kanban-board.d.ts +111 -0
  281. package/types/lifecorner-angular-ui-kit-line-chart.d.ts +186 -0
  282. package/types/lifecorner-angular-ui-kit-list.d.ts +215 -0
  283. package/types/lifecorner-angular-ui-kit-log-viewer.d.ts +355 -0
  284. package/types/lifecorner-angular-ui-kit-logo.d.ts +182 -0
  285. package/types/lifecorner-angular-ui-kit-markdown.d.ts +278 -0
  286. package/types/lifecorner-angular-ui-kit-menu.d.ts +152 -0
  287. package/types/lifecorner-angular-ui-kit-modal.d.ts +207 -0
  288. package/types/lifecorner-angular-ui-kit-models.d.ts +62 -0
  289. package/types/lifecorner-angular-ui-kit-next-step-card.d.ts +262 -0
  290. package/types/lifecorner-angular-ui-kit-notification-center.d.ts +237 -0
  291. package/types/lifecorner-angular-ui-kit-number-input.d.ts +126 -0
  292. package/types/lifecorner-angular-ui-kit-page-header.d.ts +178 -0
  293. package/types/lifecorner-angular-ui-kit-page-layout.d.ts +61 -0
  294. package/types/lifecorner-angular-ui-kit-pagination.d.ts +141 -0
  295. package/types/lifecorner-angular-ui-kit-password-input.d.ts +361 -0
  296. package/types/lifecorner-angular-ui-kit-pie-chart.d.ts +58 -0
  297. package/types/lifecorner-angular-ui-kit-pipeline.d.ts +89 -0
  298. package/types/lifecorner-angular-ui-kit-popover.d.ts +104 -0
  299. package/types/lifecorner-angular-ui-kit-progress-bar.d.ts +116 -0
  300. package/types/lifecorner-angular-ui-kit-progress-ring.d.ts +67 -0
  301. package/types/lifecorner-angular-ui-kit-provider-button.d.ts +137 -0
  302. package/types/lifecorner-angular-ui-kit-radar-chart.d.ts +113 -0
  303. package/types/lifecorner-angular-ui-kit-radio.d.ts +297 -0
  304. package/types/lifecorner-angular-ui-kit-rating.d.ts +115 -0
  305. package/types/lifecorner-angular-ui-kit-rich-text-editor.d.ts +226 -0
  306. package/types/lifecorner-angular-ui-kit-scatter-plot.d.ts +190 -0
  307. package/types/lifecorner-angular-ui-kit-search-input.d.ts +137 -0
  308. package/types/lifecorner-angular-ui-kit-section.d.ts +34 -0
  309. package/types/lifecorner-angular-ui-kit-select.d.ts +274 -0
  310. package/types/lifecorner-angular-ui-kit-sidenav.d.ts +368 -0
  311. package/types/lifecorner-angular-ui-kit-skeleton.d.ts +61 -0
  312. package/types/lifecorner-angular-ui-kit-slider.d.ts +79 -0
  313. package/types/lifecorner-angular-ui-kit-spacer.d.ts +27 -0
  314. package/types/lifecorner-angular-ui-kit-sparkline.d.ts +113 -0
  315. package/types/lifecorner-angular-ui-kit-spinner.d.ts +50 -0
  316. package/types/lifecorner-angular-ui-kit-split-pane.d.ts +131 -0
  317. package/types/lifecorner-angular-ui-kit-stack.d.ts +49 -0
  318. package/types/lifecorner-angular-ui-kit-stacked-bar-chart.d.ts +171 -0
  319. package/types/lifecorner-angular-ui-kit-stage-list.d.ts +69 -0
  320. package/types/lifecorner-angular-ui-kit-stat-trend.d.ts +62 -0
  321. package/types/lifecorner-angular-ui-kit-status-dot.d.ts +62 -0
  322. package/types/lifecorner-angular-ui-kit-stepper.d.ts +113 -0
  323. package/types/lifecorner-angular-ui-kit-switch.d.ts +141 -0
  324. package/types/lifecorner-angular-ui-kit-table.d.ts +632 -0
  325. package/types/lifecorner-angular-ui-kit-tabs.d.ts +196 -0
  326. package/types/lifecorner-angular-ui-kit-tag-input.d.ts +123 -0
  327. package/types/lifecorner-angular-ui-kit-textarea.d.ts +225 -0
  328. package/types/lifecorner-angular-ui-kit-theme.d.ts +91 -0
  329. package/types/lifecorner-angular-ui-kit-timeline.d.ts +162 -0
  330. package/types/lifecorner-angular-ui-kit-toast.d.ts +204 -0
  331. package/types/lifecorner-angular-ui-kit-toggle-group.d.ts +100 -0
  332. package/types/lifecorner-angular-ui-kit-tokens.d.ts +134 -0
  333. package/types/lifecorner-angular-ui-kit-toolbar.d.ts +120 -0
  334. package/types/lifecorner-angular-ui-kit-tooltip.d.ts +120 -0
  335. package/types/lifecorner-angular-ui-kit-tree-view.d.ts +231 -0
  336. package/types/lifecorner-angular-ui-kit-typography.d.ts +126 -0
  337. package/types/lifecorner-angular-ui-kit-verification-code-input.d.ts +187 -0
  338. package/types/lifecorner-angular-ui-kit-waterfall-chart.d.ts +163 -0
  339. package/types/lifecorner-angular-ui-kit.d.ts +109 -17401
  340. package/fesm2022/lifecorner-angular-ui-kit.mjs.map +0 -1
@@ -0,0 +1,356 @@
1
+ import * as i0 from "@angular/core";
2
+ import { ChangeDetectionStrategy, Component, computed, input } from "@angular/core";
3
+ function diffLines(a, b) {
4
+ if (a.length === 0 && b.length === 0) return [];
5
+ if (a.length === 0) return [["added", b]];
6
+ if (b.length === 0) return [["removed", a]];
7
+ let start = 0;
8
+ const maxPrefix = Math.min(a.length, b.length);
9
+ while (start < maxPrefix && a[start] === b[start]) start++;
10
+ let end = 0;
11
+ const maxSuffix = maxPrefix - start;
12
+ while (end < maxSuffix && a[a.length - 1 - end] === b[b.length - 1 - end]) end++;
13
+ const ops = [];
14
+ if (start > 0) ops.push(["unchanged", a.slice(0, start)]);
15
+ const midA = a.slice(start, a.length - end);
16
+ const midB = b.slice(start, b.length - end);
17
+ if (midA.length && midB.length) {
18
+ if (sharesLine(midA, midB)) ops.push(...bisect(midA, midB));
19
+ else ops.push(["removed", midA], ["added", midB]);
20
+ } else if (midA.length) ops.push(["removed", midA]);
21
+ else if (midB.length) ops.push(["added", midB]);
22
+ if (end > 0) ops.push(["unchanged", a.slice(a.length - end)]);
23
+ return ops;
24
+ }
25
+ function sharesLine(a, b) {
26
+ const seen = new Set(a);
27
+ return b.some((line) => seen.has(line));
28
+ }
29
+ function bisect(a, b) {
30
+ const n = a.length;
31
+ const m = b.length;
32
+ const maxD = Math.ceil((n + m) / 2);
33
+ const offset = maxD;
34
+ const size = 2 * maxD;
35
+ const v1 = new Int32Array(size).fill(-1);
36
+ const v2 = new Int32Array(size).fill(-1);
37
+ v1[offset + 1] = 0;
38
+ v2[offset + 1] = 0;
39
+ const delta = n - m;
40
+ const front = delta % 2 !== 0;
41
+ let k1start = 0, k1end = 0, k2start = 0, k2end = 0;
42
+ for (let d = 0; d < maxD; d++) {
43
+ for (let k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {
44
+ const k1o = offset + k1;
45
+ let x1 = k1 === -d || k1 !== d && v1[k1o - 1] < v1[k1o + 1] ? v1[k1o + 1] : v1[k1o - 1] + 1;
46
+ let y1 = x1 - k1;
47
+ while (x1 < n && y1 < m && a[x1] === b[y1]) {
48
+ x1++;
49
+ y1++;
50
+ }
51
+ v1[k1o] = x1;
52
+ if (x1 > n) k1end += 2;
53
+ else if (y1 > m) k1start += 2;
54
+ else if (front) {
55
+ const k2o = offset + delta - k1;
56
+ if (k2o >= 0 && k2o < size && v2[k2o] !== -1 && x1 >= n - v2[k2o]) return splitAt(a, b, x1, y1);
57
+ }
58
+ }
59
+ for (let k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {
60
+ const k2o = offset + k2;
61
+ let x2 = k2 === -d || k2 !== d && v2[k2o - 1] < v2[k2o + 1] ? v2[k2o + 1] : v2[k2o - 1] + 1;
62
+ let y2 = x2 - k2;
63
+ while (x2 < n && y2 < m && a[n - x2 - 1] === b[m - y2 - 1]) {
64
+ x2++;
65
+ y2++;
66
+ }
67
+ v2[k2o] = x2;
68
+ if (x2 > n) k2end += 2;
69
+ else if (y2 > m) k2start += 2;
70
+ else if (!front) {
71
+ const k1o = offset + delta - k2;
72
+ if (k1o >= 0 && k1o < size && v1[k1o] !== -1) {
73
+ const x1 = v1[k1o];
74
+ if (x1 >= n - x2) return splitAt(a, b, x1, offset + x1 - k1o);
75
+ }
76
+ }
77
+ }
78
+ }
79
+ return [["removed", a], ["added", b]];
80
+ }
81
+ function splitAt(a, b, x, y) {
82
+ return [...diffLines(a.slice(0, x), b.slice(0, y)), ...diffLines(a.slice(x), b.slice(y))];
83
+ }
84
+ var DiffViewerComponent = class DiffViewerComponent {
85
+ oldText = input.required(...ngDevMode ? [{ debugName: "oldText" }] : /* istanbul ignore next */ []);
86
+ newText = input.required(...ngDevMode ? [{ debugName: "newText" }] : /* istanbul ignore next */ []);
87
+ oldLabel = input("Original", ...ngDevMode ? [{ debugName: "oldLabel" }] : /* istanbul ignore next */ []);
88
+ newLabel = input("Modified", ...ngDevMode ? [{ debugName: "newLabel" }] : /* istanbul ignore next */ []);
89
+ mode = input("side-by-side", ...ngDevMode ? [{ debugName: "mode" }] : /* istanbul ignore next */ []);
90
+ showLineNumbers = input(true, ...ngDevMode ? [{ debugName: "showLineNumbers" }] : /* istanbul ignore next */ []);
91
+ contextLines = input(Infinity, ...ngDevMode ? [{ debugName: "contextLines" }] : /* istanbul ignore next */ []);
92
+ maxLines = input(2e4, ...ngDevMode ? [{ debugName: "maxLines" }] : /* istanbul ignore next */ []);
93
+ oldLines = computed(() => this.oldText().split("\n"), ...ngDevMode ? [{ debugName: "oldLines" }] : /* istanbul ignore next */ []);
94
+ newLines = computed(() => this.newText().split("\n"), ...ngDevMode ? [{ debugName: "newLines" }] : /* istanbul ignore next */ []);
95
+ oldLineCount = computed(() => this.oldLines().length, ...ngDevMode ? [{ debugName: "oldLineCount" }] : /* istanbul ignore next */ []);
96
+ newLineCount = computed(() => this.newLines().length, ...ngDevMode ? [{ debugName: "newLineCount" }] : /* istanbul ignore next */ []);
97
+ tooLarge = computed(() => Math.max(this.oldLines().length, this.newLines().length) > this.maxLines(), ...ngDevMode ? [{ debugName: "tooLarge" }] : /* istanbul ignore next */ []);
98
+ diffLines = computed(() => {
99
+ if (this.tooLarge()) return [];
100
+ return this.numberOps(diffLines(this.oldLines(), this.newLines()));
101
+ }, ...ngDevMode ? [{ debugName: "diffLines" }] : /* istanbul ignore next */ []);
102
+ filteredLines = computed(() => {
103
+ const ctx = this.contextLines();
104
+ const lines = this.diffLines();
105
+ if (ctx === Infinity) return lines;
106
+ const changed = /* @__PURE__ */ new Set();
107
+ lines.forEach((l, i) => {
108
+ if (l.type !== "unchanged") changed.add(i);
109
+ });
110
+ const visible = /* @__PURE__ */ new Set();
111
+ for (const idx of changed) for (let j = Math.max(0, idx - ctx); j <= Math.min(lines.length - 1, idx + ctx); j++) visible.add(j);
112
+ return lines.filter((_, i) => visible.has(i));
113
+ }, ...ngDevMode ? [{ debugName: "filteredLines" }] : /* istanbul ignore next */ []);
114
+ sideBySide = computed(() => {
115
+ if (this.mode() !== "side-by-side") return {
116
+ left: [],
117
+ right: []
118
+ };
119
+ const lines = this.filteredLines();
120
+ const left = [];
121
+ const right = [];
122
+ for (const line of lines) if (line.type === "unchanged") {
123
+ left.push({
124
+ num: line.leftNum,
125
+ content: line.content,
126
+ type: "unchanged"
127
+ });
128
+ right.push({
129
+ num: line.rightNum,
130
+ content: line.content,
131
+ type: "unchanged"
132
+ });
133
+ } else if (line.type === "removed") {
134
+ left.push({
135
+ num: line.leftNum,
136
+ content: line.content,
137
+ type: "removed"
138
+ });
139
+ right.push({
140
+ num: null,
141
+ content: "",
142
+ type: "empty"
143
+ });
144
+ } else {
145
+ left.push({
146
+ num: null,
147
+ content: "",
148
+ type: "empty"
149
+ });
150
+ right.push({
151
+ num: line.rightNum,
152
+ content: line.content,
153
+ type: "added"
154
+ });
155
+ }
156
+ return {
157
+ left,
158
+ right
159
+ };
160
+ }, ...ngDevMode ? [{ debugName: "sideBySide" }] : /* istanbul ignore next */ []);
161
+ stats = computed(() => {
162
+ let additions = 0;
163
+ let deletions = 0;
164
+ for (const l of this.diffLines()) if (l.type === "added") additions++;
165
+ else if (l.type === "removed") deletions++;
166
+ return {
167
+ additions,
168
+ deletions
169
+ };
170
+ }, ...ngDevMode ? [{ debugName: "stats" }] : /* istanbul ignore next */ []);
171
+ numberOps(ops) {
172
+ const result = [];
173
+ let i = 0, j = 0;
174
+ for (const [type, lines] of ops) for (const content of lines) if (type === "unchanged") result.push({
175
+ type,
176
+ leftNum: ++i,
177
+ rightNum: ++j,
178
+ content
179
+ });
180
+ else if (type === "removed") result.push({
181
+ type,
182
+ leftNum: ++i,
183
+ rightNum: null,
184
+ content
185
+ });
186
+ else result.push({
187
+ type,
188
+ leftNum: null,
189
+ rightNum: ++j,
190
+ content
191
+ });
192
+ return result;
193
+ }
194
+ static ɵfac = i0.ɵɵngDeclareFactory({
195
+ minVersion: "12.0.0",
196
+ version: "22.2.2",
197
+ ngImport: i0,
198
+ type: DiffViewerComponent,
199
+ deps: [],
200
+ target: i0.ɵɵFactoryTarget.Component
201
+ });
202
+ static ɵcmp = i0.ɵɵngDeclareComponent({
203
+ minVersion: "17.0.0",
204
+ version: "22.2.2",
205
+ type: DiffViewerComponent,
206
+ isStandalone: true,
207
+ selector: "lc-diff-viewer",
208
+ inputs: {
209
+ oldText: {
210
+ classPropertyName: "oldText",
211
+ publicName: "oldText",
212
+ isSignal: true,
213
+ isRequired: true,
214
+ transformFunction: null
215
+ },
216
+ newText: {
217
+ classPropertyName: "newText",
218
+ publicName: "newText",
219
+ isSignal: true,
220
+ isRequired: true,
221
+ transformFunction: null
222
+ },
223
+ oldLabel: {
224
+ classPropertyName: "oldLabel",
225
+ publicName: "oldLabel",
226
+ isSignal: true,
227
+ isRequired: false,
228
+ transformFunction: null
229
+ },
230
+ newLabel: {
231
+ classPropertyName: "newLabel",
232
+ publicName: "newLabel",
233
+ isSignal: true,
234
+ isRequired: false,
235
+ transformFunction: null
236
+ },
237
+ mode: {
238
+ classPropertyName: "mode",
239
+ publicName: "mode",
240
+ isSignal: true,
241
+ isRequired: false,
242
+ transformFunction: null
243
+ },
244
+ showLineNumbers: {
245
+ classPropertyName: "showLineNumbers",
246
+ publicName: "showLineNumbers",
247
+ isSignal: true,
248
+ isRequired: false,
249
+ transformFunction: null
250
+ },
251
+ contextLines: {
252
+ classPropertyName: "contextLines",
253
+ publicName: "contextLines",
254
+ isSignal: true,
255
+ isRequired: false,
256
+ transformFunction: null
257
+ },
258
+ maxLines: {
259
+ classPropertyName: "maxLines",
260
+ publicName: "maxLines",
261
+ isSignal: true,
262
+ isRequired: false,
263
+ transformFunction: null
264
+ }
265
+ },
266
+ ngImport: i0,
267
+ template: "<div class=\"lc-diff\">\n <!-- Stats bar -->\n <div class=\"lc-diff__stats\">\n <span class=\"lc-diff__stat lc-diff__stat--add\">+{{ stats().additions }}</span>\n <span class=\"lc-diff__stat lc-diff__stat--del\">−{{ stats().deletions }}</span>\n </div>\n\n @if (tooLarge()) {\n <!-- Size cap hit: no diff is computed -->\n <p class=\"lc-diff__too-large\" role=\"status\">\n Diff too large to display ({{ oldLabel() }}: {{ oldLineCount() }} lines,\n {{ newLabel() }}: {{ newLineCount() }} lines; limit {{ maxLines() }} lines per side).\n </p>\n } @else if (mode() === 'inline') {\n <!-- Inline mode -->\n <div class=\"lc-diff__inline\">\n <div class=\"lc-diff__headers\">\n <span class=\"lc-diff__file-label\">{{ oldLabel() }} → {{ newLabel() }}</span>\n </div>\n <div class=\"lc-diff__body\">\n @for (line of filteredLines(); track $index) {\n <div\n class=\"lc-diff__line\"\n [class.lc-diff__line--added]=\"line.type === 'added'\"\n [class.lc-diff__line--removed]=\"line.type === 'removed'\"\n >\n @if (showLineNumbers()) {\n <span class=\"lc-diff__num lc-diff__num--left\">{{ line.leftNum ?? '' }}</span>\n <span class=\"lc-diff__num lc-diff__num--right\">{{ line.rightNum ?? '' }}</span>\n }\n <span class=\"lc-diff__prefix\">{{ line.type === 'added' ? '+' : line.type === 'removed' ? '−' : ' ' }}</span>\n <span class=\"lc-diff__content\">{{ line.content }}</span>\n </div>\n }\n </div>\n </div>\n } @else {\n <!-- Side-by-side mode -->\n <div class=\"lc-diff__side-by-side\">\n <div class=\"lc-diff__pane lc-diff__pane--left\">\n <div class=\"lc-diff__pane-header\">{{ oldLabel() }}</div>\n @for (line of sideBySide().left; track $index) {\n <div\n class=\"lc-diff__line\"\n [class.lc-diff__line--removed]=\"line.type === 'removed'\"\n [class.lc-diff__line--empty]=\"line.type === 'empty'\"\n >\n @if (showLineNumbers()) {\n <span class=\"lc-diff__num\">{{ line.num ?? '' }}</span>\n }\n <span class=\"lc-diff__content\">{{ line.content }}</span>\n </div>\n }\n </div>\n <div class=\"lc-diff__pane lc-diff__pane--right\">\n <div class=\"lc-diff__pane-header\">{{ newLabel() }}</div>\n @for (line of sideBySide().right; track $index) {\n <div\n class=\"lc-diff__line\"\n [class.lc-diff__line--added]=\"line.type === 'added'\"\n [class.lc-diff__line--empty]=\"line.type === 'empty'\"\n >\n @if (showLineNumbers()) {\n <span class=\"lc-diff__num\">{{ line.num ?? '' }}</span>\n }\n <span class=\"lc-diff__content\">{{ line.content }}</span>\n </div>\n }\n </div>\n </div>\n }\n</div>\n",
268
+ styles: [".lc-diff{border:1px solid var(--color-border);border-radius:8px;overflow:hidden;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:.75rem;line-height:1.5}.lc-diff__stats{display:flex;gap:8px;padding:6px 12px;background:var(--color-surface-2);border-bottom:1px solid var(--color-border)}.lc-diff__stat{font-size:.6875rem;font-weight:600}.lc-diff__stat--add{color:var(--color-success-default)}.lc-diff__stat--del{color:var(--color-error-default)}.lc-diff__headers,.lc-diff__pane-header{padding:4px 12px;background:var(--color-surface-2);font-size:.6875rem;font-weight:600;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border)}.lc-diff__body{overflow-x:auto}.lc-diff__side-by-side{display:grid;grid-template-columns:1fr 1fr}.lc-diff__pane{overflow-x:auto;min-width:0}.lc-diff__pane--left{border-right:1px solid var(--color-border)}.lc-diff__line{display:flex;min-height:1.5em;padding:0 8px}.lc-diff__line--added{background:var(--color-success-50, #f0fdf4)}.lc-diff__line--removed{background:var(--color-error-50, #fef2f2)}.lc-diff__line--empty{background:var(--color-surface-2)}.lc-diff__num{flex-shrink:0;width:36px;text-align:right;padding-right:8px;color:var(--color-text-tertiary);-webkit-user-select:none;user-select:none}.lc-diff__num--left,.lc-diff__num--right{width:36px}.lc-diff__prefix{flex-shrink:0;width:16px;text-align:center;color:var(--color-text-tertiary);-webkit-user-select:none;user-select:none;font-weight:600}.lc-diff__line--added .lc-diff__prefix{color:var(--color-success-default)}.lc-diff__line--removed .lc-diff__prefix{color:var(--color-error-default)}.lc-diff__content{flex:1;white-space:pre;color:var(--color-text-primary)}.lc-diff__file-label{color:var(--color-text-secondary)}.lc-diff__too-large{margin:0;padding:12px;font-family:var(--font-family-sans, sans-serif);font-size:.8125rem;color:var(--color-text-secondary);background:var(--color-surface-2)}\n"],
269
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
270
+ });
271
+ };
272
+ i0.ɵɵngDeclareClassMetadata({
273
+ minVersion: "12.0.0",
274
+ version: "22.2.2",
275
+ ngImport: i0,
276
+ type: DiffViewerComponent,
277
+ decorators: [{
278
+ type: Component,
279
+ args: [{
280
+ selector: "lc-diff-viewer",
281
+ standalone: true,
282
+ changeDetection: ChangeDetectionStrategy.OnPush,
283
+ template: "<div class=\"lc-diff\">\n <!-- Stats bar -->\n <div class=\"lc-diff__stats\">\n <span class=\"lc-diff__stat lc-diff__stat--add\">+{{ stats().additions }}</span>\n <span class=\"lc-diff__stat lc-diff__stat--del\">−{{ stats().deletions }}</span>\n </div>\n\n @if (tooLarge()) {\n <!-- Size cap hit: no diff is computed -->\n <p class=\"lc-diff__too-large\" role=\"status\">\n Diff too large to display ({{ oldLabel() }}: {{ oldLineCount() }} lines,\n {{ newLabel() }}: {{ newLineCount() }} lines; limit {{ maxLines() }} lines per side).\n </p>\n } @else if (mode() === 'inline') {\n <!-- Inline mode -->\n <div class=\"lc-diff__inline\">\n <div class=\"lc-diff__headers\">\n <span class=\"lc-diff__file-label\">{{ oldLabel() }} → {{ newLabel() }}</span>\n </div>\n <div class=\"lc-diff__body\">\n @for (line of filteredLines(); track $index) {\n <div\n class=\"lc-diff__line\"\n [class.lc-diff__line--added]=\"line.type === 'added'\"\n [class.lc-diff__line--removed]=\"line.type === 'removed'\"\n >\n @if (showLineNumbers()) {\n <span class=\"lc-diff__num lc-diff__num--left\">{{ line.leftNum ?? '' }}</span>\n <span class=\"lc-diff__num lc-diff__num--right\">{{ line.rightNum ?? '' }}</span>\n }\n <span class=\"lc-diff__prefix\">{{ line.type === 'added' ? '+' : line.type === 'removed' ? '−' : ' ' }}</span>\n <span class=\"lc-diff__content\">{{ line.content }}</span>\n </div>\n }\n </div>\n </div>\n } @else {\n <!-- Side-by-side mode -->\n <div class=\"lc-diff__side-by-side\">\n <div class=\"lc-diff__pane lc-diff__pane--left\">\n <div class=\"lc-diff__pane-header\">{{ oldLabel() }}</div>\n @for (line of sideBySide().left; track $index) {\n <div\n class=\"lc-diff__line\"\n [class.lc-diff__line--removed]=\"line.type === 'removed'\"\n [class.lc-diff__line--empty]=\"line.type === 'empty'\"\n >\n @if (showLineNumbers()) {\n <span class=\"lc-diff__num\">{{ line.num ?? '' }}</span>\n }\n <span class=\"lc-diff__content\">{{ line.content }}</span>\n </div>\n }\n </div>\n <div class=\"lc-diff__pane lc-diff__pane--right\">\n <div class=\"lc-diff__pane-header\">{{ newLabel() }}</div>\n @for (line of sideBySide().right; track $index) {\n <div\n class=\"lc-diff__line\"\n [class.lc-diff__line--added]=\"line.type === 'added'\"\n [class.lc-diff__line--empty]=\"line.type === 'empty'\"\n >\n @if (showLineNumbers()) {\n <span class=\"lc-diff__num\">{{ line.num ?? '' }}</span>\n }\n <span class=\"lc-diff__content\">{{ line.content }}</span>\n </div>\n }\n </div>\n </div>\n }\n</div>\n",
284
+ styles: [".lc-diff{border:1px solid var(--color-border);border-radius:8px;overflow:hidden;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:.75rem;line-height:1.5}.lc-diff__stats{display:flex;gap:8px;padding:6px 12px;background:var(--color-surface-2);border-bottom:1px solid var(--color-border)}.lc-diff__stat{font-size:.6875rem;font-weight:600}.lc-diff__stat--add{color:var(--color-success-default)}.lc-diff__stat--del{color:var(--color-error-default)}.lc-diff__headers,.lc-diff__pane-header{padding:4px 12px;background:var(--color-surface-2);font-size:.6875rem;font-weight:600;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border)}.lc-diff__body{overflow-x:auto}.lc-diff__side-by-side{display:grid;grid-template-columns:1fr 1fr}.lc-diff__pane{overflow-x:auto;min-width:0}.lc-diff__pane--left{border-right:1px solid var(--color-border)}.lc-diff__line{display:flex;min-height:1.5em;padding:0 8px}.lc-diff__line--added{background:var(--color-success-50, #f0fdf4)}.lc-diff__line--removed{background:var(--color-error-50, #fef2f2)}.lc-diff__line--empty{background:var(--color-surface-2)}.lc-diff__num{flex-shrink:0;width:36px;text-align:right;padding-right:8px;color:var(--color-text-tertiary);-webkit-user-select:none;user-select:none}.lc-diff__num--left,.lc-diff__num--right{width:36px}.lc-diff__prefix{flex-shrink:0;width:16px;text-align:center;color:var(--color-text-tertiary);-webkit-user-select:none;user-select:none;font-weight:600}.lc-diff__line--added .lc-diff__prefix{color:var(--color-success-default)}.lc-diff__line--removed .lc-diff__prefix{color:var(--color-error-default)}.lc-diff__content{flex:1;white-space:pre;color:var(--color-text-primary)}.lc-diff__file-label{color:var(--color-text-secondary)}.lc-diff__too-large{margin:0;padding:12px;font-family:var(--font-family-sans, sans-serif);font-size:.8125rem;color:var(--color-text-secondary);background:var(--color-surface-2)}\n"]
285
+ }]
286
+ }],
287
+ propDecorators: {
288
+ oldText: [{
289
+ type: i0.Input,
290
+ args: [{
291
+ isSignal: true,
292
+ alias: "oldText",
293
+ required: true
294
+ }]
295
+ }],
296
+ newText: [{
297
+ type: i0.Input,
298
+ args: [{
299
+ isSignal: true,
300
+ alias: "newText",
301
+ required: true
302
+ }]
303
+ }],
304
+ oldLabel: [{
305
+ type: i0.Input,
306
+ args: [{
307
+ isSignal: true,
308
+ alias: "oldLabel",
309
+ required: false
310
+ }]
311
+ }],
312
+ newLabel: [{
313
+ type: i0.Input,
314
+ args: [{
315
+ isSignal: true,
316
+ alias: "newLabel",
317
+ required: false
318
+ }]
319
+ }],
320
+ mode: [{
321
+ type: i0.Input,
322
+ args: [{
323
+ isSignal: true,
324
+ alias: "mode",
325
+ required: false
326
+ }]
327
+ }],
328
+ showLineNumbers: [{
329
+ type: i0.Input,
330
+ args: [{
331
+ isSignal: true,
332
+ alias: "showLineNumbers",
333
+ required: false
334
+ }]
335
+ }],
336
+ contextLines: [{
337
+ type: i0.Input,
338
+ args: [{
339
+ isSignal: true,
340
+ alias: "contextLines",
341
+ required: false
342
+ }]
343
+ }],
344
+ maxLines: [{
345
+ type: i0.Input,
346
+ args: [{
347
+ isSignal: true,
348
+ alias: "maxLines",
349
+ required: false
350
+ }]
351
+ }]
352
+ }
353
+ });
354
+ export { DiffViewerComponent };
355
+
356
+ //# sourceMappingURL=lifecorner-angular-ui-kit-diff-viewer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecorner-angular-ui-kit-diff-viewer.mjs","names":[],"sources":["../../../../libs/angular-ui-kit/src/lib/diff-viewer/diff-viewer.component.ts","../../../../libs/angular-ui-kit/src/lib/diff-viewer/diff-viewer.component.html"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n input,\n computed,\n} from '@angular/core';\n\nexport type DiffViewMode = 'side-by-side' | 'inline';\n\ninterface DiffLine {\n type: 'unchanged' | 'added' | 'removed';\n leftNum: number | null;\n rightNum: number | null;\n content: string;\n}\n\n/** Edit-script op produced by the line diff (before numbering). */\ntype DiffOp = readonly [type: DiffLine['type'], lines: readonly string[]];\n\n/**\n * Line diff: common prefix/suffix are peeled off cheaply, the remainder goes\n * through Myers' O((N+M)·D) \"bisect\" (find where the forward and reverse\n * D-paths meet, split there, recurse) — linear space, no N×M matrix. Two\n * 5 000-line inputs used to allocate ~25M numbers and freeze the tab.\n */\nfunction diffLines(a: readonly string[], b: readonly string[]): DiffOp[] {\n if (a.length === 0 && b.length === 0) return [];\n if (a.length === 0) return [['added', b]];\n if (b.length === 0) return [['removed', a]];\n\n // Common prefix / suffix.\n let start = 0;\n const maxPrefix = Math.min(a.length, b.length);\n while (start < maxPrefix && a[start] === b[start]) start++;\n let end = 0;\n const maxSuffix = maxPrefix - start;\n while (end < maxSuffix && a[a.length - 1 - end] === b[b.length - 1 - end]) end++;\n\n const ops: DiffOp[] = [];\n if (start > 0) ops.push(['unchanged', a.slice(0, start)]);\n const midA = a.slice(start, a.length - end);\n const midB = b.slice(start, b.length - end);\n if (midA.length && midB.length) {\n // Disjoint inputs are Myers' worst case (D = N + M); answer them in linear time.\n if (sharesLine(midA, midB)) ops.push(...bisect(midA, midB));\n else ops.push(['removed', midA], ['added', midB]);\n } else if (midA.length) ops.push(['removed', midA]);\n else if (midB.length) ops.push(['added', midB]);\n if (end > 0) ops.push(['unchanged', a.slice(a.length - end)]);\n return ops;\n}\n\nfunction sharesLine(a: readonly string[], b: readonly string[]): boolean {\n const seen = new Set(a);\n return b.some(line => seen.has(line));\n}\n\n/** Myers middle-snake bisection (as in diff-match-patch), on line arrays. */\nfunction bisect(a: readonly string[], b: readonly string[]): DiffOp[] {\n const n = a.length;\n const m = b.length;\n const maxD = Math.ceil((n + m) / 2);\n const offset = maxD;\n const size = 2 * maxD;\n const v1 = new Int32Array(size).fill(-1);\n const v2 = new Int32Array(size).fill(-1);\n v1[offset + 1] = 0;\n v2[offset + 1] = 0;\n const delta = n - m;\n // With an odd delta the paths can only overlap on the forward pass.\n const front = delta % 2 !== 0;\n let k1start = 0, k1end = 0, k2start = 0, k2end = 0;\n\n for (let d = 0; d < maxD; d++) {\n // Forward path.\n for (let k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n const k1o = offset + k1;\n let x1 = k1 === -d || (k1 !== d && v1[k1o - 1] < v1[k1o + 1]) ? v1[k1o + 1] : v1[k1o - 1] + 1;\n let y1 = x1 - k1;\n while (x1 < n && y1 < m && a[x1] === b[y1]) { x1++; y1++; }\n v1[k1o] = x1;\n if (x1 > n) k1end += 2;\n else if (y1 > m) k1start += 2;\n else if (front) {\n const k2o = offset + delta - k1;\n if (k2o >= 0 && k2o < size && v2[k2o] !== -1 && x1 >= n - v2[k2o]) {\n return splitAt(a, b, x1, y1);\n }\n }\n }\n // Reverse path.\n for (let k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n const k2o = offset + k2;\n let x2 = k2 === -d || (k2 !== d && v2[k2o - 1] < v2[k2o + 1]) ? v2[k2o + 1] : v2[k2o - 1] + 1;\n let y2 = x2 - k2;\n while (x2 < n && y2 < m && a[n - x2 - 1] === b[m - y2 - 1]) { x2++; y2++; }\n v2[k2o] = x2;\n if (x2 > n) k2end += 2;\n else if (y2 > m) k2start += 2;\n else if (!front) {\n const k1o = offset + delta - k2;\n if (k1o >= 0 && k1o < size && v1[k1o] !== -1) {\n const x1 = v1[k1o];\n if (x1 >= n - x2) return splitAt(a, b, x1, offset + x1 - k1o);\n }\n }\n }\n }\n // Nothing in common at all.\n return [['removed', a], ['added', b]];\n}\n\nfunction splitAt(a: readonly string[], b: readonly string[], x: number, y: number): DiffOp[] {\n return [...diffLines(a.slice(0, x), b.slice(0, y)), ...diffLines(a.slice(x), b.slice(y))];\n}\n\n@Component({\n selector: 'lc-diff-viewer',\n standalone: true,\n templateUrl: './diff-viewer.component.html',\n styleUrls: ['./diff-viewer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DiffViewerComponent {\n readonly oldText = input.required<string>();\n readonly newText = input.required<string>();\n readonly oldLabel = input('Original');\n readonly newLabel = input('Modified');\n readonly mode = input<DiffViewMode>('side-by-side');\n readonly showLineNumbers = input(true);\n readonly contextLines = input(Infinity);\n\n /**\n * Upper bound (per side, in lines) above which no diff is computed and a\n * \"too large\" notice is rendered instead — a UI diff of that size is neither\n * readable nor cheap. Raise it deliberately when you know the inputs.\n */\n readonly maxLines = input(20_000);\n\n private readonly oldLines = computed(() => this.oldText().split('\\n'));\n private readonly newLines = computed(() => this.newText().split('\\n'));\n protected readonly oldLineCount = computed(() => this.oldLines().length);\n protected readonly newLineCount = computed(() => this.newLines().length);\n\n /** True when either side exceeds `maxLines`; the diff is then skipped. */\n protected readonly tooLarge = computed(\n () => Math.max(this.oldLines().length, this.newLines().length) > this.maxLines(),\n );\n\n protected readonly diffLines = computed<DiffLine[]>(() => {\n if (this.tooLarge()) return [];\n return this.numberOps(diffLines(this.oldLines(), this.newLines()));\n });\n\n protected readonly filteredLines = computed(() => {\n const ctx = this.contextLines();\n const lines = this.diffLines();\n if (ctx === Infinity) return lines;\n\n const changed = new Set<number>();\n lines.forEach((l, i) => { if (l.type !== 'unchanged') changed.add(i); });\n\n const visible = new Set<number>();\n for (const idx of changed) {\n for (let j = Math.max(0, idx - ctx); j <= Math.min(lines.length - 1, idx + ctx); j++) {\n visible.add(j);\n }\n }\n\n return lines.filter((_, i) => visible.has(i));\n });\n\n protected readonly sideBySide = computed(() => {\n if (this.mode() !== 'side-by-side') return { left: [], right: [] };\n\n const lines = this.filteredLines();\n const left: { num: number | null; content: string; type: string }[] = [];\n const right: { num: number | null; content: string; type: string }[] = [];\n\n for (const line of lines) {\n if (line.type === 'unchanged') {\n left.push({ num: line.leftNum, content: line.content, type: 'unchanged' });\n right.push({ num: line.rightNum, content: line.content, type: 'unchanged' });\n } else if (line.type === 'removed') {\n left.push({ num: line.leftNum, content: line.content, type: 'removed' });\n right.push({ num: null, content: '', type: 'empty' });\n } else {\n left.push({ num: null, content: '', type: 'empty' });\n right.push({ num: line.rightNum, content: line.content, type: 'added' });\n }\n }\n\n return { left, right };\n });\n\n protected readonly stats = computed(() => {\n let additions = 0;\n let deletions = 0;\n for (const l of this.diffLines()) {\n if (l.type === 'added') additions++;\n else if (l.type === 'removed') deletions++;\n }\n return { additions, deletions };\n });\n\n /** Expand the edit script into numbered lines (removed before added). */\n private numberOps(ops: readonly DiffOp[]): DiffLine[] {\n const result: DiffLine[] = [];\n let i = 0, j = 0;\n for (const [type, lines] of ops) {\n for (const content of lines) {\n if (type === 'unchanged') result.push({ type, leftNum: ++i, rightNum: ++j, content });\n else if (type === 'removed') result.push({ type, leftNum: ++i, rightNum: null, content });\n else result.push({ type, leftNum: null, rightNum: ++j, content });\n }\n }\n return result;\n }\n}\n","<div class=\"lc-diff\">\n <!-- Stats bar -->\n <div class=\"lc-diff__stats\">\n <span class=\"lc-diff__stat lc-diff__stat--add\">+{{ stats().additions }}</span>\n <span class=\"lc-diff__stat lc-diff__stat--del\">−{{ stats().deletions }}</span>\n </div>\n\n @if (tooLarge()) {\n <!-- Size cap hit: no diff is computed -->\n <p class=\"lc-diff__too-large\" role=\"status\">\n Diff too large to display ({{ oldLabel() }}: {{ oldLineCount() }} lines,\n {{ newLabel() }}: {{ newLineCount() }} lines; limit {{ maxLines() }} lines per side).\n </p>\n } @else if (mode() === 'inline') {\n <!-- Inline mode -->\n <div class=\"lc-diff__inline\">\n <div class=\"lc-diff__headers\">\n <span class=\"lc-diff__file-label\">{{ oldLabel() }} → {{ newLabel() }}</span>\n </div>\n <div class=\"lc-diff__body\">\n @for (line of filteredLines(); track $index) {\n <div\n class=\"lc-diff__line\"\n [class.lc-diff__line--added]=\"line.type === 'added'\"\n [class.lc-diff__line--removed]=\"line.type === 'removed'\"\n >\n @if (showLineNumbers()) {\n <span class=\"lc-diff__num lc-diff__num--left\">{{ line.leftNum ?? '' }}</span>\n <span class=\"lc-diff__num lc-diff__num--right\">{{ line.rightNum ?? '' }}</span>\n }\n <span class=\"lc-diff__prefix\">{{ line.type === 'added' ? '+' : line.type === 'removed' ? '−' : ' ' }}</span>\n <span class=\"lc-diff__content\">{{ line.content }}</span>\n </div>\n }\n </div>\n </div>\n } @else {\n <!-- Side-by-side mode -->\n <div class=\"lc-diff__side-by-side\">\n <div class=\"lc-diff__pane lc-diff__pane--left\">\n <div class=\"lc-diff__pane-header\">{{ oldLabel() }}</div>\n @for (line of sideBySide().left; track $index) {\n <div\n class=\"lc-diff__line\"\n [class.lc-diff__line--removed]=\"line.type === 'removed'\"\n [class.lc-diff__line--empty]=\"line.type === 'empty'\"\n >\n @if (showLineNumbers()) {\n <span class=\"lc-diff__num\">{{ line.num ?? '' }}</span>\n }\n <span class=\"lc-diff__content\">{{ line.content }}</span>\n </div>\n }\n </div>\n <div class=\"lc-diff__pane lc-diff__pane--right\">\n <div class=\"lc-diff__pane-header\">{{ newLabel() }}</div>\n @for (line of sideBySide().right; track $index) {\n <div\n class=\"lc-diff__line\"\n [class.lc-diff__line--added]=\"line.type === 'added'\"\n [class.lc-diff__line--empty]=\"line.type === 'empty'\"\n >\n @if (showLineNumbers()) {\n <span class=\"lc-diff__num\">{{ line.num ?? '' }}</span>\n }\n <span class=\"lc-diff__content\">{{ line.content }}</span>\n </div>\n }\n </div>\n </div>\n }\n</div>\n"],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ import * as i0 from "@angular/core";
2
+ import { ChangeDetectionStrategy, Component, computed, input } from "@angular/core";
3
+ var DividerComponent = class DividerComponent {
4
+ orientation = input("horizontal", ...ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []);
5
+ variant = input("solid", ...ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []);
6
+ spacing = input("md", ...ngDevMode ? [{ debugName: "spacing" }] : /* istanbul ignore next */ []);
7
+ label = input(void 0, ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
8
+ dividerClasses = computed(() => {
9
+ return [
10
+ "divider",
11
+ `divider--${this.orientation()}`,
12
+ `divider--${this.variant()}`,
13
+ `divider--spacing-${this.spacing()}`,
14
+ this.label() ? "divider--with-label" : ""
15
+ ].filter(Boolean).join(" ");
16
+ }, ...ngDevMode ? [{ debugName: "dividerClasses" }] : /* istanbul ignore next */ []);
17
+ static ɵfac = i0.ɵɵngDeclareFactory({
18
+ minVersion: "12.0.0",
19
+ version: "22.2.2",
20
+ ngImport: i0,
21
+ type: DividerComponent,
22
+ deps: [],
23
+ target: i0.ɵɵFactoryTarget.Component
24
+ });
25
+ static ɵcmp = i0.ɵɵngDeclareComponent({
26
+ minVersion: "17.0.0",
27
+ version: "22.2.2",
28
+ type: DividerComponent,
29
+ isStandalone: true,
30
+ selector: "lc-divider",
31
+ inputs: {
32
+ orientation: {
33
+ classPropertyName: "orientation",
34
+ publicName: "orientation",
35
+ isSignal: true,
36
+ isRequired: false,
37
+ transformFunction: null
38
+ },
39
+ variant: {
40
+ classPropertyName: "variant",
41
+ publicName: "variant",
42
+ isSignal: true,
43
+ isRequired: false,
44
+ transformFunction: null
45
+ },
46
+ spacing: {
47
+ classPropertyName: "spacing",
48
+ publicName: "spacing",
49
+ isSignal: true,
50
+ isRequired: false,
51
+ transformFunction: null
52
+ },
53
+ label: {
54
+ classPropertyName: "label",
55
+ publicName: "label",
56
+ isSignal: true,
57
+ isRequired: false,
58
+ transformFunction: null
59
+ }
60
+ },
61
+ ngImport: i0,
62
+ template: "<div [class]=\"dividerClasses()\" role=\"separator\" [attr.aria-orientation]=\"orientation()\">\n @if (label() && orientation() === 'horizontal') {\n <span class=\"divider__label\">{{ label() }}</span>\n }\n</div>\n",
63
+ styles: [":host{display:block}.divider--horizontal{width:100%;border:none;border-top-width:1px;border-top-color:var(--color-border)}.divider--horizontal.divider--solid{border-top-style:solid}.divider--horizontal.divider--dashed{border-top-style:dashed}.divider--horizontal.divider--dotted{border-top-style:dotted}.divider--horizontal.divider--spacing-none{margin-top:0;margin-bottom:0}.divider--horizontal.divider--spacing-xs{margin-top:.25rem;margin-bottom:.25rem}.divider--horizontal.divider--spacing-sm{margin-top:.5rem;margin-bottom:.5rem}.divider--horizontal.divider--spacing-md{margin-top:1rem;margin-bottom:1rem}.divider--horizontal.divider--spacing-lg{margin-top:1.5rem;margin-bottom:1.5rem}.divider--horizontal.divider--spacing-xl{margin-top:2rem;margin-bottom:2rem}.divider--horizontal.divider--with-label{display:flex;align-items:center;gap:.75rem;border-top:none}.divider--horizontal.divider--with-label:before,.divider--horizontal.divider--with-label:after{content:\"\";flex:1;border-top-width:1px;border-top-color:var(--color-border)}.divider--horizontal.divider--with-label.divider--solid:before,.divider--horizontal.divider--with-label.divider--solid:after{border-top-style:solid}.divider--horizontal.divider--with-label.divider--dashed:before,.divider--horizontal.divider--with-label.divider--dashed:after{border-top-style:dashed}.divider--horizontal.divider--with-label.divider--dotted:before,.divider--horizontal.divider--with-label.divider--dotted:after{border-top-style:dotted}.divider--vertical{display:inline-block;width:0;align-self:stretch;min-height:1rem;border:none;border-left-width:1px;border-left-color:var(--color-border)}.divider--vertical.divider--solid{border-left-style:solid}.divider--vertical.divider--dashed{border-left-style:dashed}.divider--vertical.divider--dotted{border-left-style:dotted}.divider--vertical.divider--spacing-none{margin-left:0;margin-right:0}.divider--vertical.divider--spacing-xs{margin-left:.25rem;margin-right:.25rem}.divider--vertical.divider--spacing-sm{margin-left:.5rem;margin-right:.5rem}.divider--vertical.divider--spacing-md{margin-left:1rem;margin-right:1rem}.divider--vertical.divider--spacing-lg{margin-left:1.5rem;margin-right:1.5rem}.divider--vertical.divider--spacing-xl{margin-left:2rem;margin-right:2rem}.divider__label{font-size:.75rem;font-weight:500;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}\n"],
64
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
65
+ });
66
+ };
67
+ i0.ɵɵngDeclareClassMetadata({
68
+ minVersion: "12.0.0",
69
+ version: "22.2.2",
70
+ ngImport: i0,
71
+ type: DividerComponent,
72
+ decorators: [{
73
+ type: Component,
74
+ args: [{
75
+ selector: "lc-divider",
76
+ standalone: true,
77
+ changeDetection: ChangeDetectionStrategy.OnPush,
78
+ template: "<div [class]=\"dividerClasses()\" role=\"separator\" [attr.aria-orientation]=\"orientation()\">\n @if (label() && orientation() === 'horizontal') {\n <span class=\"divider__label\">{{ label() }}</span>\n }\n</div>\n",
79
+ styles: [":host{display:block}.divider--horizontal{width:100%;border:none;border-top-width:1px;border-top-color:var(--color-border)}.divider--horizontal.divider--solid{border-top-style:solid}.divider--horizontal.divider--dashed{border-top-style:dashed}.divider--horizontal.divider--dotted{border-top-style:dotted}.divider--horizontal.divider--spacing-none{margin-top:0;margin-bottom:0}.divider--horizontal.divider--spacing-xs{margin-top:.25rem;margin-bottom:.25rem}.divider--horizontal.divider--spacing-sm{margin-top:.5rem;margin-bottom:.5rem}.divider--horizontal.divider--spacing-md{margin-top:1rem;margin-bottom:1rem}.divider--horizontal.divider--spacing-lg{margin-top:1.5rem;margin-bottom:1.5rem}.divider--horizontal.divider--spacing-xl{margin-top:2rem;margin-bottom:2rem}.divider--horizontal.divider--with-label{display:flex;align-items:center;gap:.75rem;border-top:none}.divider--horizontal.divider--with-label:before,.divider--horizontal.divider--with-label:after{content:\"\";flex:1;border-top-width:1px;border-top-color:var(--color-border)}.divider--horizontal.divider--with-label.divider--solid:before,.divider--horizontal.divider--with-label.divider--solid:after{border-top-style:solid}.divider--horizontal.divider--with-label.divider--dashed:before,.divider--horizontal.divider--with-label.divider--dashed:after{border-top-style:dashed}.divider--horizontal.divider--with-label.divider--dotted:before,.divider--horizontal.divider--with-label.divider--dotted:after{border-top-style:dotted}.divider--vertical{display:inline-block;width:0;align-self:stretch;min-height:1rem;border:none;border-left-width:1px;border-left-color:var(--color-border)}.divider--vertical.divider--solid{border-left-style:solid}.divider--vertical.divider--dashed{border-left-style:dashed}.divider--vertical.divider--dotted{border-left-style:dotted}.divider--vertical.divider--spacing-none{margin-left:0;margin-right:0}.divider--vertical.divider--spacing-xs{margin-left:.25rem;margin-right:.25rem}.divider--vertical.divider--spacing-sm{margin-left:.5rem;margin-right:.5rem}.divider--vertical.divider--spacing-md{margin-left:1rem;margin-right:1rem}.divider--vertical.divider--spacing-lg{margin-left:1.5rem;margin-right:1.5rem}.divider--vertical.divider--spacing-xl{margin-left:2rem;margin-right:2rem}.divider__label{font-size:.75rem;font-weight:500;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}\n"]
80
+ }]
81
+ }],
82
+ propDecorators: {
83
+ orientation: [{
84
+ type: i0.Input,
85
+ args: [{
86
+ isSignal: true,
87
+ alias: "orientation",
88
+ required: false
89
+ }]
90
+ }],
91
+ variant: [{
92
+ type: i0.Input,
93
+ args: [{
94
+ isSignal: true,
95
+ alias: "variant",
96
+ required: false
97
+ }]
98
+ }],
99
+ spacing: [{
100
+ type: i0.Input,
101
+ args: [{
102
+ isSignal: true,
103
+ alias: "spacing",
104
+ required: false
105
+ }]
106
+ }],
107
+ label: [{
108
+ type: i0.Input,
109
+ args: [{
110
+ isSignal: true,
111
+ alias: "label",
112
+ required: false
113
+ }]
114
+ }]
115
+ }
116
+ });
117
+ export { DividerComponent };
118
+
119
+ //# sourceMappingURL=lifecorner-angular-ui-kit-divider.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecorner-angular-ui-kit-divider.mjs","names":[],"sources":["../../../../libs/angular-ui-kit/src/lib/divider/divider.component.ts","../../../../libs/angular-ui-kit/src/lib/divider/divider.component.html"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n input,\n computed,\n} from '@angular/core';\n\nexport type DividerOrientation = 'horizontal' | 'vertical';\nexport type DividerVariant = 'solid' | 'dashed' | 'dotted';\nexport type DividerSpacing = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * Divider component for visual separation of content.\n *\n * Features:\n * - Horizontal and vertical orientations\n * - Line style variants (solid, dashed, dotted)\n * - Configurable spacing (none, sm, md, lg)\n * - Optional centered text label\n * - Dark mode support\n *\n * @example\n * ```html\n * <lc-divider></lc-divider>\n * <lc-divider orientation=\"vertical\" variant=\"dashed\"></lc-divider>\n * <lc-divider spacing=\"lg\">OR</lc-divider>\n * ```\n */\n@Component({\n selector: 'lc-divider',\n standalone: true,\n templateUrl: './divider.component.html',\n styleUrls: ['./divider.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DividerComponent {\n /**\n * Orientation of the divider line.\n * @default 'horizontal'\n */\n orientation = input<DividerOrientation>('horizontal');\n\n /**\n * Line style.\n * @default 'solid'\n */\n variant = input<DividerVariant>('solid');\n\n /**\n * Spacing (margin) around the divider.\n * @default 'md'\n */\n spacing = input<DividerSpacing>('md');\n\n /**\n * Optional inline text label (e.g. \"OR\", \"Section\").\n */\n label = input<string | undefined>(undefined);\n\n protected dividerClasses = computed(() => {\n return [\n 'divider',\n `divider--${this.orientation()}`,\n `divider--${this.variant()}`,\n `divider--spacing-${this.spacing()}`,\n this.label() ? 'divider--with-label' : '',\n ]\n .filter(Boolean)\n .join(' ');\n });\n}\n","<div [class]=\"dividerClasses()\" role=\"separator\" [attr.aria-orientation]=\"orientation()\">\n @if (label() && orientation() === 'horizontal') {\n <span class=\"divider__label\">{{ label() }}</span>\n }\n</div>\n"],"mappings":";;AAmCA,IAAa,mBAAb,MAAa,iBAAgB;CAK3B,cAAc,MAA0B,cAAa,GAAA,YAAA,CAAA,EAAA,WAAA,cAAA,CAAA,+BAAA,CAAA,CAAA;CAMrD,UAAU,MAAsB,SAAQ,GAAA,YAAA,CAAA,EAAA,WAAA,UAAA,CAAA,+BAAA,CAAA,CAAA;CAMxC,UAAU,MAAsB,MAAK,GAAA,YAAA,CAAA,EAAA,WAAA,UAAA,CAAA,+BAAA,CAAA,CAAA;CAKrC,QAAQ,MAA0B,QAAU,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;CAElC,iBAAiB,eAAc;EACvC,OAAO;GACL;GACA,YAAY,KAAK,YAAW;GAC5B,YAAY,KAAK,QAAO;GACxB,oBAAoB,KAAK,QAAO;GAChC,KAAK,MAAK,IAAK,wBAAwB;EACxC,CAAA,CACE,OAAO,OAAO,CAAC,CACf,KAAK,GAAG;CACb,GAAE,GAAA,YAAA,CAAA,EAAA,WAAA,iBAAA,CAAA,+BAAA,CAAA,CAAA;CAlCS,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAgB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAhB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAgB,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,aAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,SAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,SAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;GAAA,OAAA;IAAA,mBAAA;IAAA,YAAA;IAAA,UAAA;IAAA,YAAA;IAAA,mBAAA;GAAA;EAAA;EAAA,UAAA;EAAA,UCnC7B;EAKA,QAAA,CAAA,s3EAAA;EAAA,iBAAA,GAAA,wBAAA;CAAA,CAAA;;AD8Ba,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAgB,YAAA,CAAA;EAP5B,MAAA;EACW,MAAA,CAAA;GAAA,UAAA;GAAY,YACV;GAAI,iBAGC,wBAAwB;GAAM,UAAA;GAAA,QAAA,CAAA,s3EAAA;EAAA,CAAA"}