@kouji-ui/core 0.1.1 → 0.1.2

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 (535) hide show
  1. package/fesm2022/kouji-ui-core.mjs +26789 -0
  2. package/fesm2022/kouji-ui-core.mjs.map +1 -0
  3. package/package.json +5 -6
  4. package/types/kouji-ui-core.d.ts +13545 -0
  5. package/.turbo/turbo-build.log +0 -30
  6. package/CHANGELOG.md +0 -190
  7. package/ng-package.json +0 -11
  8. package/src/a11y/.gitkeep +0 -0
  9. package/src/a11y/aria-describedby.spec.ts +0 -55
  10. package/src/a11y/aria-describedby.ts +0 -37
  11. package/src/a11y/aria-labelledby.spec.ts +0 -55
  12. package/src/a11y/aria-labelledby.ts +0 -38
  13. package/src/a11y/focus-trap.spec.ts +0 -86
  14. package/src/a11y/focus-trap.ts +0 -72
  15. package/src/a11y/index.ts +0 -10
  16. package/src/a11y/live-region.spec.ts +0 -58
  17. package/src/a11y/live-region.ts +0 -50
  18. package/src/a11y/roving-tabindex.spec.ts +0 -201
  19. package/src/a11y/roving-tabindex.ts +0 -153
  20. package/src/a11y/visually-hidden.spec.ts +0 -34
  21. package/src/a11y/visually-hidden.ts +0 -26
  22. package/src/accordion/accordion.context.ts +0 -44
  23. package/src/accordion/accordion.spec.ts +0 -242
  24. package/src/accordion/accordion.ts +0 -401
  25. package/src/accordion/index.ts +0 -8
  26. package/src/alert/alert.context.ts +0 -28
  27. package/src/alert/alert.spec.ts +0 -217
  28. package/src/alert/alert.ts +0 -417
  29. package/src/alert/config.ts +0 -46
  30. package/src/alert/index.ts +0 -19
  31. package/src/avatar/avatar-group.context.ts +0 -45
  32. package/src/avatar/avatar-group.spec.ts +0 -358
  33. package/src/avatar/avatar-group.ts +0 -259
  34. package/src/avatar/avatar.spec.ts +0 -18
  35. package/src/avatar/avatar.ts +0 -39
  36. package/src/avatar/index.ts +0 -11
  37. package/src/badge/badge.spec.ts +0 -28
  38. package/src/badge/badge.ts +0 -35
  39. package/src/badge/index.ts +0 -1
  40. package/src/breadcrumb/breadcrumb-current.ts +0 -38
  41. package/src/breadcrumb/breadcrumb-ellipsis.ts +0 -71
  42. package/src/breadcrumb/breadcrumb-item.ts +0 -41
  43. package/src/breadcrumb/breadcrumb-link.ts +0 -44
  44. package/src/breadcrumb/breadcrumb-list.ts +0 -42
  45. package/src/breadcrumb/breadcrumb-separator.ts +0 -45
  46. package/src/breadcrumb/breadcrumb.context.ts +0 -45
  47. package/src/breadcrumb/breadcrumb.spec.ts +0 -354
  48. package/src/breadcrumb/breadcrumb.ts +0 -239
  49. package/src/breadcrumb/config.ts +0 -84
  50. package/src/breadcrumb/index.ts +0 -18
  51. package/src/button/_examples/button.example.ts +0 -71
  52. package/src/button/_examples/button.finance.example.ts +0 -83
  53. package/src/button/_examples/button.retro.example.ts +0 -91
  54. package/src/button/_examples/button.sizes.example.ts +0 -60
  55. package/src/button/_examples/index.ts +0 -6
  56. package/src/button/button.spec.ts +0 -163
  57. package/src/button/button.ts +0 -142
  58. package/src/button/config.spec.ts +0 -33
  59. package/src/button/config.ts +0 -45
  60. package/src/button/index.ts +0 -2
  61. package/src/button-group/button-group.context.ts +0 -28
  62. package/src/button-group/button-group.spec.ts +0 -99
  63. package/src/button-group/button-group.ts +0 -99
  64. package/src/button-group/index.ts +0 -2
  65. package/src/calendar/calendar-day.ts +0 -102
  66. package/src/calendar/calendar-grid.ts +0 -90
  67. package/src/calendar/calendar-header.ts +0 -65
  68. package/src/calendar/calendar.context.ts +0 -53
  69. package/src/calendar/calendar.spec.ts +0 -225
  70. package/src/calendar/calendar.ts +0 -233
  71. package/src/calendar/date-utils.ts +0 -225
  72. package/src/calendar/index.ts +0 -28
  73. package/src/carousel/carousel.context.ts +0 -81
  74. package/src/carousel/carousel.spec.ts +0 -337
  75. package/src/carousel/carousel.ts +0 -919
  76. package/src/carousel/index.ts +0 -22
  77. package/src/cascade-select/cascade-select-option.ts +0 -205
  78. package/src/cascade-select/cascade-select-panel.ts +0 -106
  79. package/src/cascade-select/cascade-select-root.ts +0 -265
  80. package/src/cascade-select/cascade-select-sub-panel.ts +0 -168
  81. package/src/cascade-select/cascade-select-trigger.ts +0 -44
  82. package/src/cascade-select/cascade-select.context.ts +0 -71
  83. package/src/cascade-select/cascade-select.spec.ts +0 -241
  84. package/src/cascade-select/cascade-select.ts +0 -5
  85. package/src/cascade-select/index.ts +0 -11
  86. package/src/chart/chart.spec.ts +0 -27
  87. package/src/chart/chart.ts +0 -52
  88. package/src/chart/index.ts +0 -1
  89. package/src/chat/chat-avatar.ts +0 -31
  90. package/src/chat/chat-bubble.ts +0 -49
  91. package/src/chat/chat-footer.ts +0 -67
  92. package/src/chat/chat-header.ts +0 -41
  93. package/src/chat/chat-log.ts +0 -43
  94. package/src/chat/chat.context.ts +0 -64
  95. package/src/chat/chat.spec.ts +0 -341
  96. package/src/chat/chat.ts +0 -191
  97. package/src/chat/config.ts +0 -53
  98. package/src/chat/index.ts +0 -21
  99. package/src/checkbox/checkbox.spec.ts +0 -35
  100. package/src/checkbox/checkbox.ts +0 -89
  101. package/src/checkbox/index.ts +0 -1
  102. package/src/color-picker/color-picker.context.ts +0 -74
  103. package/src/color-picker/color-picker.spec.ts +0 -241
  104. package/src/color-picker/color-picker.ts +0 -698
  105. package/src/color-picker/color-picker.utils.ts +0 -140
  106. package/src/color-picker/index.ts +0 -28
  107. package/src/combobox/combobox-input.ts +0 -143
  108. package/src/combobox/combobox-listbox.ts +0 -49
  109. package/src/combobox/combobox-option.ts +0 -43
  110. package/src/combobox/combobox-root.ts +0 -281
  111. package/src/combobox/combobox.spec.ts +0 -75
  112. package/src/combobox/combobox.ts +0 -4
  113. package/src/combobox/index.ts +0 -4
  114. package/src/command-palette/command-empty.ts +0 -36
  115. package/src/command-palette/command-group.ts +0 -21
  116. package/src/command-palette/command-input.ts +0 -70
  117. package/src/command-palette/command-item.ts +0 -60
  118. package/src/command-palette/command-list.ts +0 -25
  119. package/src/command-palette/command-palette-dialog.ts +0 -74
  120. package/src/command-palette/command-palette-trigger.ts +0 -64
  121. package/src/command-palette/command-palette.filters.ts +0 -53
  122. package/src/command-palette/command-palette.spec.ts +0 -349
  123. package/src/command-palette/command-palette.ts +0 -204
  124. package/src/command-palette/command-separator.ts +0 -18
  125. package/src/command-palette/index.ts +0 -15
  126. package/src/confirm-popup/confirm-popup-action.ts +0 -39
  127. package/src/confirm-popup/confirm-popup-cancel.ts +0 -38
  128. package/src/confirm-popup/confirm-popup-content.ts +0 -113
  129. package/src/confirm-popup/confirm-popup-message.ts +0 -36
  130. package/src/confirm-popup/confirm-popup-trigger.ts +0 -31
  131. package/src/confirm-popup/confirm-popup.context.ts +0 -41
  132. package/src/confirm-popup/confirm-popup.spec.ts +0 -337
  133. package/src/confirm-popup/confirm-popup.ts +0 -109
  134. package/src/confirm-popup/index.ts +0 -12
  135. package/src/date-picker/date-picker-calendar.ts +0 -65
  136. package/src/date-picker/date-picker-trigger.ts +0 -215
  137. package/src/date-picker/date-picker.context.ts +0 -50
  138. package/src/date-picker/date-picker.spec.ts +0 -117
  139. package/src/date-picker/date-picker.ts +0 -127
  140. package/src/date-picker/index.ts +0 -7
  141. package/src/dialog/_examples/dialog.confirm.example.ts +0 -145
  142. package/src/dialog/_examples/dialog.example.ts +0 -106
  143. package/src/dialog/_examples/dialog.finance.example.ts +0 -121
  144. package/src/dialog/_examples/dialog.retro.example.ts +0 -126
  145. package/src/dialog/_examples/index.ts +0 -6
  146. package/src/dialog/dialog.ref.ts +0 -42
  147. package/src/dialog/dialog.service.ts +0 -66
  148. package/src/dialog/dialog.spec.ts +0 -37
  149. package/src/dialog/dialog.ts +0 -26
  150. package/src/dialog/index.ts +0 -3
  151. package/src/divider/divider.spec.ts +0 -223
  152. package/src/divider/divider.ts +0 -137
  153. package/src/divider/index.ts +0 -5
  154. package/src/drawer/drawer.ref.ts +0 -63
  155. package/src/drawer/drawer.service.ts +0 -106
  156. package/src/drawer/drawer.spec.ts +0 -117
  157. package/src/drawer/drawer.ts +0 -122
  158. package/src/drawer/index.ts +0 -10
  159. package/src/dropdown-menu/dropdown-menu-content.ts +0 -258
  160. package/src/dropdown-menu/dropdown-menu-group.ts +0 -31
  161. package/src/dropdown-menu/dropdown-menu-item.ts +0 -51
  162. package/src/dropdown-menu/dropdown-menu-label.ts +0 -41
  163. package/src/dropdown-menu/dropdown-menu-separator.ts +0 -27
  164. package/src/dropdown-menu/dropdown-menu-trigger.ts +0 -140
  165. package/src/dropdown-menu/dropdown-menu.spec.ts +0 -265
  166. package/src/dropdown-menu/dropdown-menu.ts +0 -60
  167. package/src/dropdown-menu/index.ts +0 -15
  168. package/src/example-components.ts +0 -42
  169. package/src/field/field-error.ts +0 -49
  170. package/src/field/field-group.ts +0 -39
  171. package/src/field/field-help.ts +0 -47
  172. package/src/field/field-label.ts +0 -30
  173. package/src/field/field.context.ts +0 -28
  174. package/src/field/field.spec.ts +0 -179
  175. package/src/field/field.ts +0 -121
  176. package/src/field/index.ts +0 -6
  177. package/src/file-upload/file-upload.context.ts +0 -89
  178. package/src/file-upload/file-upload.spec.ts +0 -290
  179. package/src/file-upload/file-upload.ts +0 -639
  180. package/src/file-upload/file-upload.types.ts +0 -59
  181. package/src/file-upload/index.ts +0 -23
  182. package/src/form/form-error-summary.ts +0 -87
  183. package/src/form/form-field.context.ts +0 -3
  184. package/src/form/form-field.spec.ts +0 -25
  185. package/src/form/form-field.ts +0 -52
  186. package/src/form/form.context.ts +0 -53
  187. package/src/form/form.spec.ts +0 -162
  188. package/src/form/form.ts +0 -326
  189. package/src/form/index.ts +0 -11
  190. package/src/icon/E2E.md +0 -14
  191. package/src/icon/icon.directive.spec.ts +0 -198
  192. package/src/icon/icon.directive.ts +0 -113
  193. package/src/icon/icon.mode.spec.ts +0 -29
  194. package/src/icon/icon.mode.ts +0 -23
  195. package/src/icon/icon.providers.spec.ts +0 -63
  196. package/src/icon/icon.providers.ts +0 -47
  197. package/src/icon/icon.resolver.spec.ts +0 -96
  198. package/src/icon/icon.resolver.ts +0 -49
  199. package/src/icon/icon.tokens.ts +0 -88
  200. package/src/icon/icon.types.ts +0 -48
  201. package/src/icon/index.ts +0 -21
  202. package/src/input/index.ts +0 -1
  203. package/src/input/input.spec.ts +0 -43
  204. package/src/input/input.ts +0 -89
  205. package/src/input-group/index.ts +0 -3
  206. package/src/input-group/input-group-addon.ts +0 -92
  207. package/src/input-group/input-group.context.ts +0 -27
  208. package/src/input-group/input-group.spec.ts +0 -186
  209. package/src/input-group/input-group.ts +0 -136
  210. package/src/input-mask/index.ts +0 -11
  211. package/src/input-mask/input-mask.compile.ts +0 -69
  212. package/src/input-mask/input-mask.engine.ts +0 -376
  213. package/src/input-mask/input-mask.presets.ts +0 -24
  214. package/src/input-mask/input-mask.spec.ts +0 -304
  215. package/src/input-mask/input-mask.tokens.ts +0 -49
  216. package/src/input-mask/input-mask.ts +0 -280
  217. package/src/input-otp/index.ts +0 -2
  218. package/src/input-otp/input-otp.context.ts +0 -41
  219. package/src/input-otp/input-otp.spec.ts +0 -308
  220. package/src/input-otp/input-otp.ts +0 -470
  221. package/src/kbd/index.ts +0 -1
  222. package/src/kbd/kbd.spec.ts +0 -127
  223. package/src/kbd/kbd.ts +0 -132
  224. package/src/link/config.ts +0 -44
  225. package/src/link/index.ts +0 -2
  226. package/src/link/link.spec.ts +0 -246
  227. package/src/link/link.ts +0 -226
  228. package/src/list/index.ts +0 -11
  229. package/src/list/list.spec.ts +0 -237
  230. package/src/list/list.ts +0 -277
  231. package/src/menubar/index.ts +0 -7
  232. package/src/menubar/menubar-item.ts +0 -204
  233. package/src/menubar/menubar.context.ts +0 -43
  234. package/src/menubar/menubar.spec.ts +0 -433
  235. package/src/menubar/menubar.ts +0 -309
  236. package/src/number-input/index.ts +0 -4
  237. package/src/number-input/number-input-group.ts +0 -64
  238. package/src/number-input/number-input.context.ts +0 -31
  239. package/src/number-input/number-input.format.ts +0 -148
  240. package/src/number-input/number-input.spec.ts +0 -170
  241. package/src/number-input/number-input.ts +0 -457
  242. package/src/number-input/number-stepper.ts +0 -193
  243. package/src/overlay-badge/index.ts +0 -7
  244. package/src/overlay-badge/overlay-badge-content.ts +0 -73
  245. package/src/overlay-badge/overlay-badge.context.ts +0 -37
  246. package/src/overlay-badge/overlay-badge.spec.ts +0 -220
  247. package/src/overlay-badge/overlay-badge.ts +0 -128
  248. package/src/pagination/config.ts +0 -82
  249. package/src/pagination/index.ts +0 -19
  250. package/src/pagination/page-tokens.ts +0 -78
  251. package/src/pagination/pagination-ellipsis.ts +0 -69
  252. package/src/pagination/pagination-first.ts +0 -84
  253. package/src/pagination/pagination-info.ts +0 -70
  254. package/src/pagination/pagination-item.ts +0 -81
  255. package/src/pagination/pagination-last.ts +0 -85
  256. package/src/pagination/pagination-next.ts +0 -86
  257. package/src/pagination/pagination-previous.ts +0 -90
  258. package/src/pagination/pagination.context.ts +0 -52
  259. package/src/pagination/pagination.spec.ts +0 -388
  260. package/src/pagination/pagination.ts +0 -288
  261. package/src/password-input/index.ts +0 -15
  262. package/src/password-input/password-input.context.ts +0 -65
  263. package/src/password-input/password-input.scorer.ts +0 -34
  264. package/src/password-input/password-input.spec.ts +0 -274
  265. package/src/password-input/password-input.ts +0 -488
  266. package/src/popover/_examples/index.ts +0 -5
  267. package/src/popover/_examples/popover.example.ts +0 -92
  268. package/src/popover/_examples/popover.finance.example.ts +0 -106
  269. package/src/popover/_examples/popover.retro.example.ts +0 -103
  270. package/src/popover/index.ts +0 -5
  271. package/src/popover/popover-arrow.ts +0 -30
  272. package/src/popover/popover-close.ts +0 -36
  273. package/src/popover/popover-content.ts +0 -41
  274. package/src/popover/popover-title.ts +0 -39
  275. package/src/popover/popover-trigger.ts +0 -40
  276. package/src/popover/popover.spec.ts +0 -59
  277. package/src/popover/popover.ts +0 -5
  278. package/src/presets/bind-presets.spec.ts +0 -50
  279. package/src/presets/bind-presets.ts +0 -43
  280. package/src/presets/index.ts +0 -3
  281. package/src/presets/size.spec.ts +0 -67
  282. package/src/presets/size.ts +0 -59
  283. package/src/presets/variant.spec.ts +0 -72
  284. package/src/presets/variant.ts +0 -62
  285. package/src/primitives/.gitkeep +0 -0
  286. package/src/primitives/directionality/directionality.spec.ts +0 -112
  287. package/src/primitives/directionality/directionality.ts +0 -89
  288. package/src/primitives/directionality/index.ts +0 -1
  289. package/src/primitives/forms/form-control.spec.ts +0 -67
  290. package/src/primitives/forms/form-control.ts +0 -94
  291. package/src/primitives/forms/index.ts +0 -1
  292. package/src/primitives/index.ts +0 -6
  293. package/src/primitives/interaction/disabled.spec.ts +0 -47
  294. package/src/primitives/interaction/disabled.ts +0 -31
  295. package/src/primitives/interaction/focus-ring.spec.ts +0 -62
  296. package/src/primitives/interaction/focus-ring.ts +0 -59
  297. package/src/primitives/interaction/index.ts +0 -2
  298. package/src/primitives/list/filterable-list.spec.ts +0 -114
  299. package/src/primitives/list/filterable-list.ts +0 -126
  300. package/src/primitives/list/group.spec.ts +0 -99
  301. package/src/primitives/list/group.ts +0 -139
  302. package/src/primitives/list/index.ts +0 -8
  303. package/src/primitives/list/inject-helpers.ts +0 -8
  304. package/src/primitives/list/item.spec.ts +0 -173
  305. package/src/primitives/list/item.ts +0 -222
  306. package/src/primitives/list/navigator.spec.ts +0 -286
  307. package/src/primitives/list/navigator.ts +0 -238
  308. package/src/primitives/list/selection.spec.ts +0 -214
  309. package/src/primitives/list/selection.ts +0 -339
  310. package/src/primitives/list/tokens.ts +0 -106
  311. package/src/primitives/list/type-ahead.spec.ts +0 -58
  312. package/src/primitives/list/type-ahead.ts +0 -46
  313. package/src/primitives/overlay/backdrop.spec.ts +0 -54
  314. package/src/primitives/overlay/backdrop.ts +0 -31
  315. package/src/primitives/overlay/builder.spec.ts +0 -38
  316. package/src/primitives/overlay/builder.ts +0 -151
  317. package/src/primitives/overlay/container.ts +0 -42
  318. package/src/primitives/overlay/context.ts +0 -14
  319. package/src/primitives/overlay/controller.spec.ts +0 -86
  320. package/src/primitives/overlay/controller.ts +0 -190
  321. package/src/primitives/overlay/id.spec.ts +0 -24
  322. package/src/primitives/overlay/id.ts +0 -17
  323. package/src/primitives/overlay/index.ts +0 -18
  324. package/src/primitives/overlay/overlay.css +0 -42
  325. package/src/primitives/overlay/panel.spec.ts +0 -52
  326. package/src/primitives/overlay/panel.ts +0 -102
  327. package/src/primitives/overlay/stack.spec.ts +0 -55
  328. package/src/primitives/overlay/stack.ts +0 -113
  329. package/src/primitives/overlay/strategies/backdrop/blurred.spec.ts +0 -11
  330. package/src/primitives/overlay/strategies/backdrop/blurred.ts +0 -5
  331. package/src/primitives/overlay/strategies/backdrop/none.spec.ts +0 -10
  332. package/src/primitives/overlay/strategies/backdrop/none.ts +0 -9
  333. package/src/primitives/overlay/strategies/backdrop/solid.spec.ts +0 -18
  334. package/src/primitives/overlay/strategies/backdrop/solid.ts +0 -23
  335. package/src/primitives/overlay/strategies/focus-trap/inert-based.spec.ts +0 -28
  336. package/src/primitives/overlay/strategies/focus-trap/inert-based.ts +0 -38
  337. package/src/primitives/overlay/strategies/focus-trap/no-trap.spec.ts +0 -9
  338. package/src/primitives/overlay/strategies/focus-trap/no-trap.ts +0 -8
  339. package/src/primitives/overlay/strategies/focus-trap/tab-cycle.spec.ts +0 -49
  340. package/src/primitives/overlay/strategies/focus-trap/tab-cycle.ts +0 -85
  341. package/src/primitives/overlay/strategies/index.ts +0 -34
  342. package/src/primitives/overlay/strategies/live-announcer/_announce.ts +0 -35
  343. package/src/primitives/overlay/strategies/live-announcer/assertive.spec.ts +0 -21
  344. package/src/primitives/overlay/strategies/live-announcer/assertive.ts +0 -11
  345. package/src/primitives/overlay/strategies/live-announcer/polite.spec.ts +0 -21
  346. package/src/primitives/overlay/strategies/live-announcer/polite.ts +0 -11
  347. package/src/primitives/overlay/strategies/live-announcer/silent.spec.ts +0 -12
  348. package/src/primitives/overlay/strategies/live-announcer/silent.ts +0 -5
  349. package/src/primitives/overlay/strategies/mount/body-portal.spec.ts +0 -40
  350. package/src/primitives/overlay/strategies/mount/body-portal.ts +0 -91
  351. package/src/primitives/overlay/strategies/mount/in-container.spec.ts +0 -43
  352. package/src/primitives/overlay/strategies/mount/in-container.ts +0 -39
  353. package/src/primitives/overlay/strategies/mount/in-place.spec.ts +0 -40
  354. package/src/primitives/overlay/strategies/mount/in-place.ts +0 -20
  355. package/src/primitives/overlay/strategies/position/anchored-to.spec.ts +0 -56
  356. package/src/primitives/overlay/strategies/position/anchored-to.ts +0 -248
  357. package/src/primitives/overlay/strategies/position/corner.spec.ts +0 -36
  358. package/src/primitives/overlay/strategies/position/corner.ts +0 -33
  359. package/src/primitives/overlay/strategies/position/edge-sheet.spec.ts +0 -32
  360. package/src/primitives/overlay/strategies/position/edge-sheet.ts +0 -36
  361. package/src/primitives/overlay/strategies/position/in-place-sibling.spec.ts +0 -25
  362. package/src/primitives/overlay/strategies/position/in-place-sibling.ts +0 -13
  363. package/src/primitives/overlay/strategies/position/point-at.spec.ts +0 -40
  364. package/src/primitives/overlay/strategies/position/point-at.ts +0 -34
  365. package/src/primitives/overlay/strategies/position/viewport-centered.spec.ts +0 -31
  366. package/src/primitives/overlay/strategies/position/viewport-centered.ts +0 -31
  367. package/src/primitives/overlay/strategies/scroll-lock/css-clip.spec.ts +0 -15
  368. package/src/primitives/overlay/strategies/scroll-lock/css-clip.ts +0 -39
  369. package/src/primitives/overlay/strategies/scroll-lock/html-overflow.spec.ts +0 -21
  370. package/src/primitives/overlay/strategies/scroll-lock/html-overflow.ts +0 -44
  371. package/src/primitives/overlay/strategies/scroll-lock/none.spec.ts +0 -9
  372. package/src/primitives/overlay/strategies/scroll-lock/none.ts +0 -5
  373. package/src/primitives/overlay/strategies/trigger-event/on-click.spec.ts +0 -32
  374. package/src/primitives/overlay/strategies/trigger-event/on-click.ts +0 -28
  375. package/src/primitives/overlay/strategies/trigger-event/on-context-menu.spec.ts +0 -45
  376. package/src/primitives/overlay/strategies/trigger-event/on-context-menu.ts +0 -70
  377. package/src/primitives/overlay/strategies/trigger-event/on-focus-or-input.spec.ts +0 -35
  378. package/src/primitives/overlay/strategies/trigger-event/on-focus-or-input.ts +0 -34
  379. package/src/primitives/overlay/strategies/trigger-event/on-focus.spec.ts +0 -64
  380. package/src/primitives/overlay/strategies/trigger-event/on-focus.ts +0 -37
  381. package/src/primitives/overlay/strategies/trigger-event/on-hotkey.spec.ts +0 -37
  382. package/src/primitives/overlay/strategies/trigger-event/on-hotkey.ts +0 -59
  383. package/src/primitives/overlay/strategies/trigger-event/on-hover.spec.ts +0 -34
  384. package/src/primitives/overlay/strategies/trigger-event/on-hover.ts +0 -86
  385. package/src/primitives/overlay/strategies/trigger-event/programmatic.spec.ts +0 -16
  386. package/src/primitives/overlay/strategies/trigger-event/programmatic.ts +0 -12
  387. package/src/primitives/overlay/tokens.ts +0 -54
  388. package/src/primitives/overlay/trigger.spec.ts +0 -103
  389. package/src/primitives/overlay/trigger.ts +0 -75
  390. package/src/primitives/overlay/types.ts +0 -24
  391. package/src/primitives/overlay/wrapper.ts +0 -50
  392. package/src/primitives/signals/deep-signal.ts +0 -109
  393. package/src/primitives/signals/index.ts +0 -1
  394. package/src/progress-bar/config.ts +0 -48
  395. package/src/progress-bar/index.ts +0 -12
  396. package/src/progress-bar/progress-bar-fill.ts +0 -37
  397. package/src/progress-bar/progress-bar.context.ts +0 -34
  398. package/src/progress-bar/progress-bar.spec.ts +0 -423
  399. package/src/progress-bar/progress-bar.ts +0 -217
  400. package/src/public-api.ts +0 -84
  401. package/src/radio/index.ts +0 -2
  402. package/src/radio/radio.context.ts +0 -3
  403. package/src/radio/radio.spec.ts +0 -36
  404. package/src/radio/radio.ts +0 -66
  405. package/src/select/index.ts +0 -4
  406. package/src/select/select-content.ts +0 -69
  407. package/src/select/select-option.ts +0 -35
  408. package/src/select/select-root.ts +0 -129
  409. package/src/select/select-trigger.ts +0 -93
  410. package/src/select/select.spec.ts +0 -138
  411. package/src/select/select.ts +0 -4
  412. package/src/skeleton/index.ts +0 -5
  413. package/src/skeleton/skeleton.spec.ts +0 -115
  414. package/src/skeleton/skeleton.ts +0 -56
  415. package/src/slider/index.ts +0 -10
  416. package/src/slider/slider-range.ts +0 -49
  417. package/src/slider/slider-thumb.ts +0 -335
  418. package/src/slider/slider-track.ts +0 -70
  419. package/src/slider/slider.context.ts +0 -79
  420. package/src/slider/slider.geometry.ts +0 -73
  421. package/src/slider/slider.spec.ts +0 -216
  422. package/src/slider/slider.ts +0 -443
  423. package/src/speed-dial/index.ts +0 -10
  424. package/src/speed-dial/speed-dial-action.ts +0 -40
  425. package/src/speed-dial/speed-dial-actions.ts +0 -31
  426. package/src/speed-dial/speed-dial-trigger.ts +0 -55
  427. package/src/speed-dial/speed-dial.context.ts +0 -36
  428. package/src/speed-dial/speed-dial.spec.ts +0 -143
  429. package/src/speed-dial/speed-dial.ts +0 -127
  430. package/src/spinner/config.ts +0 -48
  431. package/src/spinner/index.ts +0 -8
  432. package/src/spinner/spinner.spec.ts +0 -262
  433. package/src/spinner/spinner.ts +0 -129
  434. package/src/stepper/index.ts +0 -15
  435. package/src/stepper/stepper.context.ts +0 -63
  436. package/src/stepper/stepper.spec.ts +0 -403
  437. package/src/stepper/stepper.ts +0 -544
  438. package/src/styles/docs-themes.css +0 -82
  439. package/src/styles.css +0 -17
  440. package/src/table/column-helpers.spec.ts +0 -74
  441. package/src/table/column-helpers.ts +0 -68
  442. package/src/table/filter-fns.ts +0 -230
  443. package/src/table/filter-models.spec.ts +0 -240
  444. package/src/table/filter-models.ts +0 -124
  445. package/src/table/filter-params.ts +0 -90
  446. package/src/table/grid-api-impl.ts +0 -321
  447. package/src/table/grid-api.spec.ts +0 -178
  448. package/src/table/grid-api.ts +0 -285
  449. package/src/table/index.ts +0 -73
  450. package/src/table/table-cell.spec.ts +0 -43
  451. package/src/table/table-cell.ts +0 -38
  452. package/src/table/table-filter-outlet.ts +0 -120
  453. package/src/table/table-header.spec.ts +0 -54
  454. package/src/table/table-header.ts +0 -63
  455. package/src/table/table-keyboard.spec.ts +0 -68
  456. package/src/table/table-keyboard.ts +0 -107
  457. package/src/table/table-resource.spec.ts +0 -37
  458. package/src/table/table-resource.ts +0 -36
  459. package/src/table/table-row.spec.ts +0 -54
  460. package/src/table/table-row.ts +0 -31
  461. package/src/table/table-storage.spec.ts +0 -67
  462. package/src/table/table-storage.ts +0 -76
  463. package/src/table/table.spec.ts +0 -172
  464. package/src/table/table.ts +0 -281
  465. package/src/table/table.types.ts +0 -83
  466. package/src/tabs/index.ts +0 -7
  467. package/src/tabs/tabs.context.ts +0 -32
  468. package/src/tabs/tabs.spec.ts +0 -352
  469. package/src/tabs/tabs.ts +0 -364
  470. package/src/tag/config.ts +0 -53
  471. package/src/tag/index.ts +0 -7
  472. package/src/tag/tag-list.ts +0 -76
  473. package/src/tag/tag-remove.ts +0 -61
  474. package/src/tag/tag.context.ts +0 -36
  475. package/src/tag/tag.spec.ts +0 -240
  476. package/src/tag/tag.ts +0 -203
  477. package/src/test-setup.ts +0 -5
  478. package/src/textarea/config.ts +0 -42
  479. package/src/textarea/index.ts +0 -8
  480. package/src/textarea/textarea.spec.ts +0 -176
  481. package/src/textarea/textarea.ts +0 -235
  482. package/src/time-picker/index.ts +0 -15
  483. package/src/time-picker/time-picker-meridiem.ts +0 -123
  484. package/src/time-picker/time-picker-segment.ts +0 -318
  485. package/src/time-picker/time-picker.context.ts +0 -38
  486. package/src/time-picker/time-picker.format.ts +0 -181
  487. package/src/time-picker/time-picker.spec.ts +0 -189
  488. package/src/time-picker/time-picker.ts +0 -274
  489. package/src/toast/_examples/index.ts +0 -5
  490. package/src/toast/_examples/toast.example.ts +0 -282
  491. package/src/toast/_examples/toast.finance.example.ts +0 -180
  492. package/src/toast/_examples/toast.retro.example.ts +0 -161
  493. package/src/toast/index.ts +0 -28
  494. package/src/toast/toast.ref.ts +0 -26
  495. package/src/toast/toast.service.ts +0 -339
  496. package/src/toast/toast.spec.ts +0 -247
  497. package/src/toast/toast.strategy.ts +0 -112
  498. package/src/toast/toast.ts +0 -463
  499. package/src/toast/toast.types.ts +0 -5
  500. package/src/toggle/index.ts +0 -1
  501. package/src/toggle/toggle.spec.ts +0 -24
  502. package/src/toggle/toggle.ts +0 -48
  503. package/src/tooltip/_examples/index.ts +0 -6
  504. package/src/tooltip/_examples/tooltip.example.ts +0 -82
  505. package/src/tooltip/_examples/tooltip.finance.example.ts +0 -97
  506. package/src/tooltip/_examples/tooltip.placements.example.ts +0 -83
  507. package/src/tooltip/_examples/tooltip.retro.example.ts +0 -107
  508. package/src/tooltip/index.ts +0 -4
  509. package/src/tooltip/tooltip-arrow.ts +0 -31
  510. package/src/tooltip/tooltip-content.ts +0 -38
  511. package/src/tooltip/tooltip-group.ts +0 -32
  512. package/src/tooltip/tooltip-trigger.ts +0 -47
  513. package/src/tooltip/tooltip.spec.ts +0 -40
  514. package/src/tooltip/tooltip.ts +0 -5
  515. package/src/tree-select/index.ts +0 -12
  516. package/src/tree-select/tree-select-content.ts +0 -199
  517. package/src/tree-select/tree-select-node.ts +0 -132
  518. package/src/tree-select/tree-select-root.ts +0 -272
  519. package/src/tree-select/tree-select-trigger.ts +0 -90
  520. package/src/tree-select/tree-select.context.ts +0 -63
  521. package/src/tree-select/tree-select.spec.ts +0 -433
  522. package/src/tree-select/tree-select.ts +0 -2
  523. package/src/typography/blockquote.ts +0 -57
  524. package/src/typography/code.ts +0 -53
  525. package/src/typography/index.ts +0 -22
  526. package/src/typography/lead.ts +0 -49
  527. package/src/typography/muted.ts +0 -29
  528. package/src/typography/truncate.ts +0 -99
  529. package/src/typography/typography.spec.ts +0 -203
  530. package/tsconfig.lib.json +0 -21
  531. package/tsconfig.lib.prod.json +0 -17
  532. package/tsconfig.spec.json +0 -18
  533. package/vite.config.ts +0 -27
  534. /package/{src/icon → icon}/icon.css +0 -0
  535. /package/{src/typography → typography}/prose.css +0 -0
@@ -1,145 +0,0 @@
1
- import { Component, inject, signal, ChangeDetectionStrategy } from '@angular/core';
2
- import { KjDialog as KjDialogService } from '../dialog.service';
3
- import { KjDialogRef } from '../dialog.ref';
4
- import { KjButton } from '../../button/button';
5
-
6
- @Component({
7
- selector: 'kj-example-dialog-confirm-content',
8
- standalone: true,
9
- imports: [KjButton],
10
- styles: [
11
- `
12
- :host {
13
- display: block;
14
- background: var(--kj-surface);
15
- border: 1px solid var(--kj-border);
16
- border-radius: var(--kj-radius-lg);
17
- padding: 1.5rem;
18
- min-width: 22rem;
19
- color: var(--kj-text);
20
- font-family: var(--kj-font);
21
- box-shadow: var(--kj-shadow-hard);
22
- }
23
- h2 {
24
- margin: 0 0 0.5rem;
25
- font-size: 1.125rem;
26
- color: var(--kj-text);
27
- }
28
- .dialog-body {
29
- margin: 0 0 1.5rem;
30
- font-size: 0.875rem;
31
- color: var(--kj-text-muted);
32
- line-height: 1.6;
33
- }
34
- .dialog-actions {
35
- display: flex;
36
- gap: 0.75rem;
37
- justify-content: flex-end;
38
- }
39
- .dialog-actions button[kjButton] {
40
- padding: 0.4rem 1rem;
41
- font-size: 0.8125rem;
42
- }
43
- [data-variant='destructive'] {
44
- background: var(--kj-destructive);
45
- color: #fff;
46
- }
47
- [data-variant='outline'] {
48
- background: transparent;
49
- color: var(--kj-text);
50
- border: 1px solid var(--kj-border);
51
- }
52
- `,
53
- ],
54
- changeDetection: ChangeDetectionStrategy.Eager,
55
- template: `
56
- <h2>Are you absolutely sure?</h2>
57
- <p class="dialog-body">
58
- This action cannot be undone. All your data will be permanently removed.
59
- </p>
60
- <div class="dialog-actions">
61
- <button kjButton [kjVariant]="'outline'" (click)="ref.close('cancelled')">Cancel</button>
62
- <button kjButton [kjVariant]="'destructive'" (click)="ref.close('confirmed')">
63
- Yes, delete
64
- </button>
65
- </div>
66
- `,
67
- })
68
- export class DialogConfirmContent {
69
- readonly ref = inject<KjDialogRef<DialogConfirmContent, 'confirmed' | 'cancelled'>>(KjDialogRef);
70
- }
71
-
72
- @Component({
73
- selector: 'kj-example-dialog-confirm',
74
- standalone: true,
75
- imports: [KjButton],
76
- styleUrls: ['../../styles/docs-themes.css'],
77
- styles: [
78
- `
79
- :host {
80
- display: flex;
81
- align-items: center;
82
- justify-content: center;
83
- gap: 1rem;
84
- padding: 3rem 2rem;
85
- background: var(--kj-bg);
86
- font-family: var(--kj-font);
87
- min-height: 160px;
88
- flex-direction: column;
89
- color: var(--kj-text);
90
- }
91
- .status {
92
- font-size: 0.8125rem;
93
- color: var(--kj-text-muted);
94
- min-height: 1.25rem;
95
- }
96
- .status.confirmed {
97
- color: var(--kj-accent);
98
- }
99
- .status.cancelled {
100
- color: var(--kj-destructive);
101
- }
102
- button[kjButton] {
103
- padding: 0.5rem 1.5rem;
104
- border: var(--kj-btn-border);
105
- cursor: pointer;
106
- font-family: var(--kj-font);
107
- font-size: 0.875rem;
108
- }
109
- [data-variant='destructive'] {
110
- background: var(--kj-destructive);
111
- color: #fff;
112
- }
113
- `,
114
- ],
115
- changeDetection: ChangeDetectionStrategy.Eager,
116
- template: `
117
- <button kjButton [kjVariant]="'destructive'" (click)="open()">Delete Account</button>
118
- <span
119
- class="status"
120
- [class.confirmed]="result() === 'confirmed'"
121
- [class.cancelled]="result() === 'cancelled'"
122
- >
123
- {{
124
- result() === 'confirmed'
125
- ? '✓ Account deleted'
126
- : result() === 'cancelled'
127
- ? '✕ Cancelled'
128
- : ''
129
- }}
130
- </span>
131
- `,
132
- })
133
- export class DialogConfirmExample {
134
- private readonly dialog = inject(KjDialogService);
135
- readonly result = signal<'confirmed' | 'cancelled' | null>(null);
136
-
137
- async open() {
138
- const ref = this.dialog.open<DialogConfirmContent, 'confirmed' | 'cancelled'>(
139
- DialogConfirmContent,
140
- { alert: true },
141
- );
142
- const value = await ref.result;
143
- if (value === 'confirmed' || value === 'cancelled') this.result.set(value);
144
- }
145
- }
@@ -1,106 +0,0 @@
1
- import { Component, inject, ChangeDetectionStrategy } from '@angular/core';
2
- import { KjDialog as KjDialogService } from '../dialog.service';
3
- import { KjDialogRef } from '../dialog.ref';
4
- import { KjButton } from '../../button/button';
5
-
6
- @Component({
7
- selector: 'kj-example-dialog-basic-content',
8
- standalone: true,
9
- imports: [KjButton],
10
- styles: [
11
- `
12
- :host {
13
- display: block;
14
- background: var(--kj-surface);
15
- border: 1px solid var(--kj-border);
16
- border-radius: var(--kj-radius-lg);
17
- padding: 1.5rem;
18
- min-width: 20rem;
19
- color: var(--kj-text);
20
- font-family: var(--kj-font);
21
- box-shadow: var(--kj-shadow-hard);
22
- }
23
- h2 {
24
- margin: 0 0 0.5rem;
25
- font-size: 1.125rem;
26
- color: var(--kj-text);
27
- }
28
- .dialog-body {
29
- margin: 0 0 1.5rem;
30
- font-size: 0.875rem;
31
- color: var(--kj-text-muted);
32
- line-height: 1.6;
33
- }
34
- .dialog-actions {
35
- display: flex;
36
- gap: 0.75rem;
37
- justify-content: flex-end;
38
- }
39
- .dialog-actions button[kjButton] {
40
- padding: 0.4rem 1rem;
41
- font-size: 0.8125rem;
42
- }
43
- [data-variant='default'] {
44
- background: var(--kj-accent);
45
- color: var(--kj-accent-on);
46
- }
47
- [data-variant='outline'] {
48
- background: transparent;
49
- color: var(--kj-text);
50
- border: 1px solid var(--kj-border);
51
- }
52
- `,
53
- ],
54
- changeDetection: ChangeDetectionStrategy.Eager,
55
- template: `
56
- <h2>Edit Profile</h2>
57
- <p class="dialog-body">Make changes to your profile settings here.</p>
58
- <div class="dialog-actions">
59
- <button kjButton [kjVariant]="'outline'" (click)="ref.close('cancel')">Cancel</button>
60
- <button kjButton [kjVariant]="'default'" (click)="ref.close('save')">Save Changes</button>
61
- </div>
62
- `,
63
- })
64
- export class DialogBasicContent {
65
- readonly ref = inject<KjDialogRef<DialogBasicContent>>(KjDialogRef);
66
- }
67
-
68
- @Component({
69
- selector: 'kj-example-dialog-basic',
70
- standalone: true,
71
- imports: [KjButton],
72
- styleUrls: ['../../styles/docs-themes.css'],
73
- styles: [
74
- `
75
- :host {
76
- display: flex;
77
- align-items: center;
78
- justify-content: center;
79
- padding: 3rem 2rem;
80
- background: var(--kj-bg);
81
- font-family: var(--kj-font);
82
- min-height: 160px;
83
- }
84
- button[kjButton] {
85
- padding: 0.5rem 1.5rem;
86
- border: var(--kj-btn-border);
87
- cursor: pointer;
88
- font-family: var(--kj-font);
89
- font-size: 0.875rem;
90
- transition: var(--kj-transition);
91
- }
92
- [data-variant='default'] {
93
- background: var(--kj-accent);
94
- color: var(--kj-accent-on);
95
- }
96
- `,
97
- ],
98
- changeDetection: ChangeDetectionStrategy.Eager,
99
- template: ` <button kjButton [kjVariant]="'default'" (click)="open()">Open Dialog</button> `,
100
- })
101
- export class DialogBasicExample {
102
- private readonly dialog = inject(KjDialogService);
103
- open() {
104
- this.dialog.open(DialogBasicContent);
105
- }
106
- }
@@ -1,121 +0,0 @@
1
- import { Component, inject, ChangeDetectionStrategy } from '@angular/core';
2
- import { KjDialog as KjDialogService } from '../dialog.service';
3
- import { KjDialogRef } from '../dialog.ref';
4
-
5
- @Component({
6
- selector: 'kj-example-dialog-finance-content',
7
- standalone: true,
8
- host: { class: 'kj-theme-finance' },
9
- styleUrls: ['../../styles/docs-themes.css'],
10
- styles: [
11
- `
12
- :host {
13
- display: block;
14
- background: var(--kj-surface);
15
- border: 1px solid var(--kj-border);
16
- border-radius: var(--kj-radius-lg);
17
- padding: 1.5rem;
18
- min-width: 22rem;
19
- box-shadow: var(--kj-shadow-hard);
20
- font-family: var(--kj-font);
21
- color: var(--kj-text);
22
- }
23
- h2 {
24
- margin: 0 0 0.375rem;
25
- font-size: 1.0625rem;
26
- font-weight: 600;
27
- color: var(--kj-text);
28
- }
29
- .dialog-body {
30
- margin: 0 0 1.5rem;
31
- font-size: 0.875rem;
32
- color: var(--kj-text-muted);
33
- line-height: 1.6;
34
- }
35
- .dialog-actions {
36
- display: flex;
37
- gap: 0.5rem;
38
- justify-content: flex-end;
39
- }
40
- button {
41
- padding: 0.4rem 1rem;
42
- font-size: 0.8125rem;
43
- font-weight: 500;
44
- border-radius: var(--kj-radius-md);
45
- cursor: pointer;
46
- font-family: var(--kj-font);
47
- }
48
- .btn-cancel {
49
- background: var(--kj-surface);
50
- color: var(--kj-text);
51
- border: 1px solid var(--kj-border);
52
- }
53
- .btn-cancel:hover {
54
- background: var(--kj-bg);
55
- }
56
- .btn-primary {
57
- background: var(--kj-accent);
58
- color: var(--kj-accent-on);
59
- border: 1px solid var(--kj-accent);
60
- }
61
- .btn-primary:hover {
62
- background: #2563eb;
63
- }
64
- `,
65
- ],
66
- changeDetection: ChangeDetectionStrategy.Eager,
67
- template: `
68
- <h2>Edit Profile</h2>
69
- <p class="dialog-body">Make changes to your profile settings here.</p>
70
- <div class="dialog-actions">
71
- <button class="btn-cancel" (click)="ref.close('cancel')">Cancel</button>
72
- <button class="btn-primary" (click)="ref.close('save')">Save Changes</button>
73
- </div>
74
- `,
75
- })
76
- export class DialogFinanceContent {
77
- readonly ref = inject<KjDialogRef<DialogFinanceContent>>(KjDialogRef);
78
- }
79
-
80
- @Component({
81
- selector: 'kj-example-dialog-finance',
82
- standalone: true,
83
- styleUrls: ['../../styles/docs-themes.css'],
84
- host: { class: 'kj-theme-finance' },
85
- styles: [
86
- `
87
- :host {
88
- display: flex;
89
- align-items: center;
90
- justify-content: center;
91
- padding: 3rem 2rem;
92
- background: var(--kj-bg);
93
- font-family: var(--kj-font);
94
- min-height: 160px;
95
- }
96
- button {
97
- padding: 0.45rem 1.125rem;
98
- background: var(--kj-accent);
99
- color: var(--kj-accent-on);
100
- border: var(--kj-btn-border);
101
- border-color: var(--kj-accent);
102
- border-radius: var(--kj-radius-md);
103
- cursor: pointer;
104
- font-family: var(--kj-font);
105
- font-size: 0.875rem;
106
- font-weight: 500;
107
- }
108
- button:hover {
109
- background: #2563eb;
110
- }
111
- `,
112
- ],
113
- changeDetection: ChangeDetectionStrategy.Eager,
114
- template: ` <button (click)="open()">Open Dialog</button> `,
115
- })
116
- export class DialogFinanceExample {
117
- private readonly dialog = inject(KjDialogService);
118
- open() {
119
- this.dialog.open(DialogFinanceContent);
120
- }
121
- }
@@ -1,126 +0,0 @@
1
- import { Component, inject, ChangeDetectionStrategy } from '@angular/core';
2
- import { KjDialog as KjDialogService } from '../dialog.service';
3
- import { KjDialogRef } from '../dialog.ref';
4
-
5
- @Component({
6
- selector: 'kj-example-dialog-retro-content',
7
- standalone: true,
8
- host: { class: 'kj-theme-retro' },
9
- styleUrls: ['../../styles/docs-themes.css'],
10
- styles: [
11
- `
12
- :host {
13
- display: block;
14
- background: var(--kj-surface);
15
- border: var(--kj-btn-border);
16
- padding: 1.5rem;
17
- min-width: 20rem;
18
- box-shadow: var(--kj-shadow-hard);
19
- font-family: var(--kj-font);
20
- color: var(--kj-text);
21
- }
22
- h2 {
23
- margin: 0 0 0.5rem;
24
- font-size: 1rem;
25
- font-weight: 700;
26
- text-transform: uppercase;
27
- letter-spacing: 0.08em;
28
- border-bottom: 2px solid var(--kj-border);
29
- padding-bottom: 0.5rem;
30
- color: var(--kj-text);
31
- }
32
- .dialog-body {
33
- margin: 0.75rem 0 1.5rem;
34
- font-size: 0.8rem;
35
- color: var(--kj-text-muted);
36
- line-height: 1.6;
37
- }
38
- .dialog-actions {
39
- display: flex;
40
- gap: 0.5rem;
41
- justify-content: flex-end;
42
- }
43
- button {
44
- padding: 0.3rem 0.875rem;
45
- font-family: var(--kj-font);
46
- font-size: 0.75rem;
47
- font-weight: 700;
48
- letter-spacing: 0.06em;
49
- text-transform: uppercase;
50
- background: var(--kj-surface);
51
- color: var(--kj-text);
52
- border: var(--kj-btn-border);
53
- cursor: pointer;
54
- box-shadow: var(--kj-shadow-sm);
55
- transition: var(--kj-transition);
56
- }
57
- button:hover {
58
- transform: translate(-1px, -1px);
59
- box-shadow: var(--kj-shadow-md);
60
- }
61
- .btn-primary {
62
- background: var(--kj-accent);
63
- color: var(--kj-accent-on);
64
- }
65
- `,
66
- ],
67
- changeDetection: ChangeDetectionStrategy.Eager,
68
- template: `
69
- <h2>Edit Profile</h2>
70
- <p class="dialog-body">Make changes to your profile settings here.</p>
71
- <div class="dialog-actions">
72
- <button (click)="ref.close('cancel')">Cancel</button>
73
- <button class="btn-primary" (click)="ref.close('save')">Save Changes</button>
74
- </div>
75
- `,
76
- })
77
- export class DialogRetroContent {
78
- readonly ref = inject<KjDialogRef<DialogRetroContent>>(KjDialogRef);
79
- }
80
-
81
- @Component({
82
- selector: 'kj-example-dialog-retro',
83
- standalone: true,
84
- styleUrls: ['../../styles/docs-themes.css'],
85
- host: { class: 'kj-theme-retro' },
86
- styles: [
87
- `
88
- :host {
89
- display: flex;
90
- align-items: center;
91
- justify-content: center;
92
- padding: 3rem 2rem;
93
- background: var(--kj-bg);
94
- font-family: var(--kj-font);
95
- min-height: 160px;
96
- color: var(--kj-text);
97
- }
98
- button {
99
- padding: 0.4rem 1rem;
100
- font-family: var(--kj-font);
101
- font-size: 0.8rem;
102
- font-weight: 700;
103
- letter-spacing: 0.06em;
104
- text-transform: uppercase;
105
- background: var(--kj-surface);
106
- color: var(--kj-text);
107
- border: var(--kj-btn-border);
108
- cursor: pointer;
109
- box-shadow: var(--kj-shadow-sm);
110
- transition: var(--kj-transition);
111
- }
112
- button:hover {
113
- transform: translate(-1px, -1px);
114
- box-shadow: var(--kj-shadow-md);
115
- }
116
- `,
117
- ],
118
- changeDetection: ChangeDetectionStrategy.Eager,
119
- template: ` <button (click)="open()">Open Dialog</button> `,
120
- })
121
- export class DialogRetroExample {
122
- private readonly dialog = inject(KjDialogService);
123
- open() {
124
- this.dialog.open(DialogRetroContent);
125
- }
126
- }
@@ -1,6 +0,0 @@
1
- // AUTO-GENERATED by scripts/migrate-examples.mjs
2
- // One barrel per component folder — used by the docs app as a lazy chunk.
3
- export { DialogBasicExample } from './dialog.example';
4
- export { DialogConfirmExample } from './dialog.confirm.example';
5
- export { DialogFinanceExample } from './dialog.finance.example';
6
- export { DialogRetroExample } from './dialog.retro.example';
@@ -1,42 +0,0 @@
1
- import { Signal } from '@angular/core';
2
- import { Observable, Subject } from 'rxjs';
3
- import type { KjOverlayController } from '../primitives/overlay/controller';
4
-
5
- export class KjDialogRef<T, R = unknown> {
6
- private _instance: T | null = null;
7
- private _result: R | undefined;
8
- private resolveResult!: (r: R | undefined) => void;
9
- readonly result: Promise<R | undefined>;
10
- private readonly _afterOpened = new Subject<void>();
11
- private readonly _afterClosed = new Subject<R | undefined>();
12
- readonly afterOpened$: Observable<void> = this._afterOpened.asObservable();
13
- readonly afterClosed$: Observable<R | undefined> = this._afterClosed.asObservable();
14
-
15
- readonly state: Signal<'closed' | 'opening' | 'open' | 'closing'>;
16
- readonly isOpen: Signal<boolean>;
17
-
18
- constructor(
19
- public readonly controller: KjOverlayController,
20
- ) {
21
- this.state = controller.state;
22
- this.isOpen = controller.isOpen;
23
- this.result = new Promise<R | undefined>((res) => { this.resolveResult = res; });
24
- }
25
-
26
- /** @internal */
27
- bindInstance(instance: T) { this._instance = instance; }
28
- get instance(): T {
29
- if (!this._instance) throw new Error('KjDialogRef: instance not bound');
30
- return this._instance;
31
- }
32
-
33
- close(result?: R): void {
34
- this._result = result;
35
- this.controller.close('programmatic');
36
- queueMicrotask(() => {
37
- this._afterClosed.next(this._result);
38
- this._afterClosed.complete();
39
- this.resolveResult(this._result);
40
- });
41
- }
42
- }
@@ -1,66 +0,0 @@
1
- import { EnvironmentInjector, Injectable, Type, effect, inject, runInInjectionContext } from '@angular/core';
2
- import { KjOverlayBuilder } from '../primitives/overlay/builder';
3
- import { inPlace } from '../primitives/overlay/strategies/mount/in-place';
4
- import { viewportCentered } from '../primitives/overlay/strategies/position/viewport-centered';
5
- import { solidBackdrop } from '../primitives/overlay/strategies/backdrop/solid';
6
- import { tabCycle } from '../primitives/overlay/strategies/focus-trap/tab-cycle';
7
- import { htmlOverflow } from '../primitives/overlay/strategies/scroll-lock/html-overflow';
8
- import { silent } from '../primitives/overlay/strategies/live-announcer/silent';
9
- import { assertive } from '../primitives/overlay/strategies/live-announcer/assertive';
10
- import { programmatic } from '../primitives/overlay/strategies/trigger-event/programmatic';
11
- import { KjDialogRef } from './dialog.ref';
12
-
13
- export interface KjDialogOpenOptions<D = unknown> {
14
- data?: D;
15
- alert?: boolean;
16
- closeOnEsc?: boolean;
17
- closeOnOutside?: boolean;
18
- }
19
-
20
- @Injectable({ providedIn: 'root' })
21
- export class KjDialog {
22
- private readonly builder = inject(KjOverlayBuilder);
23
- private readonly env = inject(EnvironmentInjector);
24
-
25
- open<T, R = unknown, D = unknown>(component: Type<T>, opts: KjDialogOpenOptions<D> = {}): KjDialogRef<T, R> {
26
- const alert = !!opts.alert;
27
- const handle = this.builder.create({
28
- mount: inPlace(),
29
- position: viewportCentered(),
30
- backdrop: solidBackdrop({
31
- inert: true,
32
- closeOnClick: !alert && (opts.closeOnOutside ?? true),
33
- }),
34
- focusTrap: tabCycle({ returnFocus: true }),
35
- scrollLock: htmlOverflow(),
36
- liveAnnouncer: alert ? assertive() : silent(),
37
- trigger: programmatic(),
38
- panelRole: alert ? 'alertdialog' : 'dialog',
39
- });
40
-
41
- const ref = new KjDialogRef<T, R>(handle.controller);
42
- const cmpRef = this.builder.attachComponent(handle, component, {
43
- providers: [{ provide: KjDialogRef, useValue: ref }],
44
- data: opts.data,
45
- });
46
- ref.bindInstance(cmpRef.instance);
47
-
48
- runInInjectionContext(this.env, () => {
49
- let wasOpen = false;
50
- const eff = effect(() => {
51
- const s = handle.controller.state();
52
- if (s === 'open' || s === 'opening') wasOpen = true;
53
- if (s === 'closed' && wasOpen) {
54
- eff.destroy();
55
- // afterClosed$ subscribers see the result before teardown.
56
- queueMicrotask(() => handle.destroy());
57
- }
58
- });
59
- });
60
- handle.controller.open();
61
- return ref;
62
- }
63
-
64
- // TODO: sugar wrappers (alert/confirm/prompt) — implement once preset
65
- // components (packages/core/src/dialog/presets/*.ts) are added.
66
- }
@@ -1,37 +0,0 @@
1
- import { Component, inject, ChangeDetectionStrategy } from '@angular/core';
2
- import { TestBed } from '@angular/core/testing';
3
- import { describe, it, expect } from 'vitest';
4
- import { KjDialog as KjDialogService } from './dialog.service';
5
- import { KjDialogRef } from './dialog.ref';
6
-
7
- @Component({
8
- selector: 'kj-simple-dlg',
9
- standalone: true,
10
- changeDetection: ChangeDetectionStrategy.Eager,
11
- template: `<button (click)="ref.close('ok')">OK</button>`,
12
- })
13
- class SimpleDlg {
14
- readonly ref = inject<KjDialogRef<SimpleDlg, string>>(KjDialogRef);
15
- }
16
-
17
- describe('KjDialog', () => {
18
- it('open returns a ref with isOpen true after open', () => {
19
- const svc = TestBed.inject(KjDialogService);
20
- const ref = svc.open(SimpleDlg);
21
- expect(ref).toBeTruthy();
22
- expect(typeof ref.close).toBe('function');
23
- });
24
-
25
- it('open with alert=true uses role=alertdialog', () => {
26
- const svc = TestBed.inject(KjDialogService);
27
- const ref = svc.open(SimpleDlg, { alert: true });
28
- expect(ref.controller).toBeTruthy();
29
- });
30
-
31
- it('close resolves the result promise', async () => {
32
- const svc = TestBed.inject(KjDialogService);
33
- const ref = svc.open<SimpleDlg, string>(SimpleDlg);
34
- ref.close('hello');
35
- await expect(ref.result).resolves.toBe('hello');
36
- });
37
- });
@@ -1,26 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input } from '@angular/core';
2
- import { KjOverlayPanel } from '../primitives/overlay/panel';
3
-
4
- /**
5
- * Dialog body component. Composes `KjOverlayPanel` as a host directive so
6
- * the overlay primitives wire role/state/aria/focus management.
7
- *
8
- * The role is decided by the SERVICE (`KjDialog.open`) via the
9
- * `KJ_OVERLAY_PANEL_ROLE` provider on the controller. The `kjAlert` input
10
- * is exposed for declarative (non-service) usage where consumers wire their
11
- * own providers.
12
- *
13
- * @doc-category Core/Overlay
14
- */
15
- @Component({
16
- selector: 'kj-dialog',
17
- standalone: true,
18
- hostDirectives: [{ directive: KjOverlayPanel }],
19
- changeDetection: ChangeDetectionStrategy.OnPush,
20
- encapsulation: ViewEncapsulation.None,
21
- host: { class: 'kj-dialog' },
22
- template: `<ng-content />`,
23
- })
24
- export class KjDialog {
25
- readonly kjAlert = input(false, { transform: booleanAttribute });
26
- }
@@ -1,3 +0,0 @@
1
- export { KjDialog } from './dialog';
2
- export { KjDialog as KjDialogService, type KjDialogOpenOptions } from './dialog.service';
3
- export { KjDialogRef } from './dialog.ref';