@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,282 +0,0 @@
1
- import { Component, inject, ChangeDetectionStrategy } from '@angular/core';
2
- import { NgTemplateOutlet } from '@angular/common';
3
- import { KjToastViewport, KjToast } from '../toast';
4
- import { KjToastService } from '../toast.service';
5
- import { KjButton } from '../../button/button';
6
-
7
- @Component({
8
- selector: 'kj-example-toast-basic',
9
- standalone: true,
10
- imports: [KjToastViewport, KjToast, KjButton, NgTemplateOutlet],
11
- styleUrls: ['../../styles/docs-themes.css'],
12
- styles: [
13
- `
14
- :host {
15
- display: block;
16
- padding: 2rem;
17
- background: var(--kj-bg);
18
- font-family: var(--kj-font);
19
- min-height: 360px;
20
- position: relative;
21
- overflow: hidden;
22
- }
23
- .row {
24
- display: flex;
25
- gap: 0.75rem;
26
- flex-wrap: wrap;
27
- }
28
- button[kjButton] {
29
- padding: 0.4rem 1rem;
30
- border: none;
31
- cursor: pointer;
32
- font-family: inherit;
33
- font-size: 0.8125rem;
34
- }
35
- button[kjButton][data-variant='success'] {
36
- background: #4ade80;
37
- color: #0c0c0c;
38
- }
39
- button[kjButton][data-variant='destructive'] {
40
- background: #ef4444;
41
- color: #fff;
42
- }
43
- button[kjButton][data-variant='warning'] {
44
- background: #fb923c;
45
- color: #0c0c0c;
46
- }
47
- button[kjButton][data-variant='default'] {
48
- background: #b8f500;
49
- color: #0c0c0c;
50
- }
51
-
52
- /* ── Viewport: positioned via [data-position-*] ── */
53
- [kjToastViewport] {
54
- position: absolute;
55
- width: 22rem;
56
- max-width: calc(100% - 2rem);
57
- list-style: none;
58
- padding: 0;
59
- margin: 0;
60
- z-index: var(--kj-toast-z-index);
61
- }
62
- [kjToastViewport][data-position-y='bottom'] {
63
- bottom: 1rem;
64
- }
65
- [kjToastViewport][data-position-y='top'] {
66
- top: 1rem;
67
- }
68
- [kjToastViewport][data-position-x='end'] {
69
- right: 1rem;
70
- }
71
- [kjToastViewport][data-position-x='start'] {
72
- left: 1rem;
73
- }
74
-
75
- /* Each <li> wraps a toast — absolutely positioned so siblings overlap.
76
- The viewport itself stays a 0-height anchor; the front toast pegs to its edge. */
77
- [kjToastViewport] li {
78
- position: absolute;
79
- left: 0;
80
- right: 0;
81
- transition:
82
- transform 0.4s cubic-bezier(0.21, 0.61, 0.35, 1),
83
- opacity 0.3s ease;
84
- }
85
- [kjToastViewport][data-position-y='bottom'] li {
86
- bottom: 0;
87
- }
88
- [kjToastViewport][data-position-y='top'] li {
89
- top: 0;
90
- }
91
-
92
- /* ── COLLAPSED stack: only the front toast is fully visible.
93
- Each older toast scales down 5% per level, lifts upward by index*gap,
94
- and shrinks to the front toast's height. ── */
95
- [kjToastViewport][data-expanded='false'] [kjToast]:not([data-front='true']) {
96
- height: var(--kj-toast-front-height);
97
- overflow: hidden;
98
- transform: translateY(calc((var(--kj-toast-index) - 1) * var(--kj-toast-gap) * -1))
99
- scale(calc(1 - (var(--kj-toast-index) - 1) * 0.06));
100
- opacity: calc(1 - (var(--kj-toast-index) - 1) * 0.25);
101
- }
102
- [kjToastViewport][data-position-y='top'][data-expanded='false']
103
- [kjToast]:not([data-front='true']) {
104
- transform: translateY(calc((var(--kj-toast-index) - 1) * var(--kj-toast-gap)))
105
- scale(calc(1 - (var(--kj-toast-index) - 1) * 0.06));
106
- }
107
-
108
- /* ── EXPANDED: each toast lifts by its measured height + gap, summed for older toasts.
109
- Uses --kj-toast-before (older count visible behind). ── */
110
- [kjToastViewport][data-expanded='true'] [kjToast] {
111
- transform: translateY(
112
- calc(
113
- (var(--kj-toast-index) - 1) * (var(--kj-toast-height, 0px) + var(--kj-toast-gap)) * -1
114
- )
115
- );
116
- }
117
- [kjToastViewport][data-position-y='top'][data-expanded='true'] [kjToast] {
118
- transform: translateY(
119
- calc((var(--kj-toast-index) - 1) * (var(--kj-toast-height, 0px) + var(--kj-toast-gap)))
120
- );
121
- }
122
-
123
- /* ── Toast appearance ── */
124
- [kjToast] {
125
- display: flex;
126
- align-items: flex-start;
127
- gap: 0.75rem;
128
- padding: 0.875rem 1rem;
129
- font-size: 0.8125rem;
130
- border-radius: 8px;
131
- box-shadow:
132
- 0 4px 12px rgba(0, 0, 0, 0.15),
133
- 0 1px 0 rgba(255, 255, 255, 0.04) inset;
134
- animation: enter 0.35s cubic-bezier(0.21, 0.61, 0.35, 1);
135
- }
136
- @keyframes enter {
137
- from {
138
- opacity: 0;
139
- transform: translateY(100%) scale(0.95);
140
- }
141
- to {
142
- opacity: 1;
143
- transform: translateY(0) scale(1);
144
- }
145
- }
146
- .icon {
147
- font-size: 1rem;
148
- line-height: 1.2;
149
- flex-shrink: 0;
150
- }
151
- .body {
152
- flex: 1;
153
- min-width: 0;
154
- line-height: 1.4;
155
- }
156
- .title {
157
- font-weight: 600;
158
- margin-bottom: 0.125rem;
159
- }
160
- .close {
161
- background: none;
162
- border: none;
163
- cursor: pointer;
164
- opacity: 0.5;
165
- font-size: 1.1rem;
166
- color: inherit;
167
- padding: 0;
168
- line-height: 1;
169
- flex-shrink: 0;
170
- }
171
- .close:hover {
172
- opacity: 1;
173
- }
174
-
175
- [kjToast][data-variant='success'] {
176
- background: #052e16;
177
- color: #86efac;
178
- border: 1px solid #166534;
179
- }
180
- [kjToast][data-variant='destructive'] {
181
- background: #2c0a0a;
182
- color: #fca5a5;
183
- border: 1px solid #991b1b;
184
- }
185
- [kjToast][data-variant='warning'] {
186
- background: #2c1a04;
187
- color: #fcd34d;
188
- border: 1px solid #92400e;
189
- }
190
- [kjToast][data-variant='default'] {
191
- background: #1a1a1a;
192
- color: #f0ede6;
193
- border: 1px solid #2a2a2a;
194
- }
195
- [kjToast][data-variant='success'] .icon {
196
- color: #4ade80;
197
- }
198
- [kjToast][data-variant='destructive'] .icon {
199
- color: #f87171;
200
- }
201
- [kjToast][data-variant='warning'] .icon {
202
- color: #fb923c;
203
- }
204
- [kjToast][data-variant='default'] .icon {
205
- color: #b8f500;
206
- }
207
- `,
208
- ],
209
- changeDetection: ChangeDetectionStrategy.Eager,
210
- template: `
211
- <div class="row">
212
- <button
213
- kjButton
214
- [attr.data-variant]="'success'"
215
- (click)="toast.show('Changes saved successfully!', { variant: 'success' })"
216
- >
217
- Success
218
- </button>
219
- <button
220
- kjButton
221
- [attr.data-variant]="'destructive'"
222
- (click)="toast.show('Something went wrong!', { variant: 'destructive' })"
223
- >
224
- Error
225
- </button>
226
- <button
227
- kjButton
228
- [attr.data-variant]="'warning'"
229
- (click)="toast.show('Session expires in 5 minutes.', { variant: 'warning' })"
230
- >
231
- Warning
232
- </button>
233
- <button
234
- kjButton
235
- [attr.data-variant]="'default'"
236
- (click)="toast.show('New update available.')"
237
- >
238
- Info
239
- </button>
240
- </div>
241
-
242
- <ol
243
- kjToastViewport
244
- [kjToastDefaultTemplate]="defaultTpl"
245
- #vp="kjToastViewport"
246
- aria-label="Notifications"
247
- >
248
- @for (r of vp.renderable(); track r.id) {
249
- <li><ng-container *ngTemplateOutlet="r.template; context: r.context" /></li>
250
- }
251
- </ol>
252
-
253
- <ng-template #defaultTpl let-ctx>
254
- <div kjToast [kjToastVariant]="ctx.variant" [kjToastId]="ctx.id">
255
- <span class="icon" aria-hidden="true">{{ iconFor(ctx.variant) }}</span>
256
- <div class="body">
257
- @if (ctx.title) {
258
- <div class="title">{{ ctx.title }}</div>
259
- }
260
- <span>{{ ctx.message }}</span>
261
- </div>
262
- <button class="close" (click)="ctx.dismiss()" aria-label="Dismiss">×</button>
263
- </div>
264
- </ng-template>
265
- `,
266
- })
267
- export class ToastBasicExample {
268
- readonly toast = inject(KjToastService);
269
-
270
- iconFor(variant: 'default' | 'success' | 'destructive' | 'warning'): string {
271
- switch (variant) {
272
- case 'success':
273
- return '✓';
274
- case 'destructive':
275
- return '✕';
276
- case 'warning':
277
- return '!';
278
- default:
279
- return 'ℹ';
280
- }
281
- }
282
- }
@@ -1,180 +0,0 @@
1
- import { Component, inject, ChangeDetectionStrategy } from '@angular/core';
2
- import { NgTemplateOutlet } from '@angular/common';
3
- import { KjToastViewport, KjToast } from '../toast';
4
- import { KjToastService } from '../toast.service';
5
-
6
- @Component({
7
- selector: 'kj-example-toast-finance',
8
- standalone: true,
9
- imports: [KjToastViewport, KjToast, NgTemplateOutlet],
10
- styleUrls: ['../../styles/docs-themes.css'],
11
- host: { class: 'kj-theme-finance' },
12
- styles: [
13
- `
14
- :host {
15
- display: block;
16
- padding: 2rem;
17
- background: var(--kj-bg);
18
- font-family: var(--kj-font);
19
- min-height: 260px;
20
- position: relative;
21
- }
22
- .row {
23
- display: flex;
24
- gap: 0.625rem;
25
- flex-wrap: wrap;
26
- }
27
- button {
28
- padding: 0.4rem 1rem;
29
- font-family: inherit;
30
- font-size: 0.8125rem;
31
- font-weight: 500;
32
- border-radius: var(--kj-radius-md);
33
- border: var(--kj-btn-border);
34
- cursor: pointer;
35
- transition: var(--kj-transition);
36
- line-height: 1.5;
37
- }
38
- .btn-success {
39
- background: #22c55e;
40
- color: #fff;
41
- border-color: #22c55e;
42
- }
43
- .btn-success:hover {
44
- background: #16a34a;
45
- }
46
- .btn-error {
47
- background: #ef4444;
48
- color: #fff;
49
- border-color: #ef4444;
50
- }
51
- .btn-error:hover {
52
- background: #dc2626;
53
- }
54
- .btn-warning {
55
- background: #f59e0b;
56
- color: #fff;
57
- border-color: #f59e0b;
58
- }
59
- .btn-warning:hover {
60
- background: #d97706;
61
- }
62
- .btn-info {
63
- background: var(--kj-accent);
64
- color: var(--kj-accent-on);
65
- border-color: var(--kj-accent);
66
- }
67
- .btn-info:hover {
68
- background: #2563eb;
69
- }
70
- [kjToastViewport] {
71
- position: absolute;
72
- bottom: 1rem;
73
- right: 1rem;
74
- display: flex;
75
- flex-direction: column;
76
- gap: 0.5rem;
77
- width: 18rem;
78
- list-style: none;
79
- padding: 0;
80
- margin: 0;
81
- }
82
- [kjToast] {
83
- display: flex;
84
- align-items: center;
85
- justify-content: space-between;
86
- padding: 0.75rem 1rem;
87
- font-size: 0.8125rem;
88
- border-radius: var(--kj-radius-lg);
89
- box-shadow: var(--kj-shadow-sm);
90
- animation: slideIn 0.2s ease;
91
- }
92
- @keyframes slideIn {
93
- from {
94
- opacity: 0;
95
- transform: translateX(1rem);
96
- }
97
- to {
98
- opacity: 1;
99
- transform: translateX(0);
100
- }
101
- }
102
- [data-variant='success'] {
103
- background: #f0fdf4;
104
- color: #166534;
105
- border: 1px solid #bbf7d0;
106
- }
107
- [data-variant='destructive'] {
108
- background: #fef2f2;
109
- color: #991b1b;
110
- border: 1px solid #fecaca;
111
- }
112
- [data-variant='warning'] {
113
- background: #fffbeb;
114
- color: #92400e;
115
- border: 1px solid #fde68a;
116
- }
117
- [data-variant='default'] {
118
- background: #eff6ff;
119
- color: #1e40af;
120
- border: 1px solid #bfdbfe;
121
- }
122
- .close {
123
- background: none;
124
- border: none;
125
- cursor: pointer;
126
- font-size: 1rem;
127
- color: inherit;
128
- padding: 0 0 0 0.5rem;
129
- opacity: 0.5;
130
- }
131
- .close:hover {
132
- opacity: 1;
133
- }
134
- `,
135
- ],
136
- changeDetection: ChangeDetectionStrategy.Eager,
137
- template: `
138
- <div class="row">
139
- <button
140
- class="btn-success"
141
- (click)="toast.show('Transaction completed.', { variant: 'success' })"
142
- >
143
- Success
144
- </button>
145
- <button
146
- class="btn-error"
147
- (click)="toast.show('Payment declined.', { variant: 'destructive' })"
148
- >
149
- Error
150
- </button>
151
- <button
152
- class="btn-warning"
153
- (click)="toast.show('Session expiring soon.', { variant: 'warning' })"
154
- >
155
- Warning
156
- </button>
157
- <button class="btn-info" (click)="toast.show('Statement ready to download.')">Info</button>
158
- </div>
159
- <ol
160
- kjToastViewport
161
- [kjToastDefaultTemplate]="defaultTpl"
162
- #vp="kjToastViewport"
163
- aria-label="Notifications"
164
- >
165
- @for (r of vp.renderable(); track r.id) {
166
- <li><ng-container *ngTemplateOutlet="r.template; context: r.context" /></li>
167
- }
168
- </ol>
169
-
170
- <ng-template #defaultTpl let-ctx>
171
- <div kjToast [kjToastVariant]="ctx.variant" [kjToastId]="ctx.id">
172
- <span>{{ ctx.message }}</span>
173
- <button class="close" (click)="ctx.dismiss()" aria-label="Dismiss">×</button>
174
- </div>
175
- </ng-template>
176
- `,
177
- })
178
- export class ToastFinanceExample {
179
- readonly toast = inject(KjToastService);
180
- }
@@ -1,161 +0,0 @@
1
- import { Component, inject, ChangeDetectionStrategy } from '@angular/core';
2
- import { NgTemplateOutlet } from '@angular/common';
3
- import { KjToastViewport, KjToast } from '../toast';
4
- import { KjToastService } from '../toast.service';
5
-
6
- @Component({
7
- selector: 'kj-example-toast-retro',
8
- standalone: true,
9
- imports: [KjToastViewport, KjToast, NgTemplateOutlet],
10
- styleUrls: ['../../styles/docs-themes.css'],
11
- host: { class: 'kj-theme-retro' },
12
- styles: [
13
- `
14
- :host {
15
- display: block;
16
- padding: 2rem;
17
- background: var(--kj-bg);
18
- font-family: var(--kj-font);
19
- min-height: 260px;
20
- position: relative;
21
- color: var(--kj-text);
22
- }
23
- .row {
24
- display: flex;
25
- gap: 0.625rem;
26
- flex-wrap: wrap;
27
- }
28
- button {
29
- padding: 0.35rem 0.875rem;
30
- font-family: var(--kj-font);
31
- font-size: 0.75rem;
32
- font-weight: 700;
33
- letter-spacing: 0.06em;
34
- text-transform: uppercase;
35
- border: var(--kj-btn-border);
36
- border-radius: 0;
37
- cursor: pointer;
38
- box-shadow: var(--kj-shadow-sm);
39
- transition: var(--kj-transition);
40
- }
41
- button:hover {
42
- transform: translate(-1px, -1px);
43
- box-shadow: var(--kj-shadow-md);
44
- }
45
- .btn-ok {
46
- background: #16a34a;
47
- color: #fff;
48
- }
49
- .btn-err {
50
- background: #dc2626;
51
- color: #fff;
52
- }
53
- .btn-warn {
54
- background: #d97706;
55
- color: #fff;
56
- }
57
- .btn-info {
58
- background: #1d4ed8;
59
- color: #fff;
60
- border-color: #1d4ed8;
61
- box-shadow: 3px 3px 0 #1d4ed8;
62
- }
63
- .btn-info:hover {
64
- box-shadow: 4px 4px 0 #1d4ed8;
65
- }
66
- [kjToastViewport] {
67
- position: absolute;
68
- bottom: 1rem;
69
- right: 1rem;
70
- display: flex;
71
- flex-direction: column;
72
- gap: 0.5rem;
73
- width: 18rem;
74
- list-style: none;
75
- padding: 0;
76
- margin: 0;
77
- }
78
- [kjToast] {
79
- display: flex;
80
- align-items: center;
81
- justify-content: space-between;
82
- padding: 0.625rem 0.875rem;
83
- font-family: var(--kj-font);
84
- font-size: 0.75rem;
85
- border: var(--kj-btn-border);
86
- background: var(--kj-bg);
87
- color: var(--kj-text);
88
- box-shadow: var(--kj-shadow-md);
89
- animation: slideIn 0.15s ease;
90
- }
91
- @keyframes slideIn {
92
- from {
93
- opacity: 0;
94
- transform: translateX(1rem);
95
- }
96
- to {
97
- opacity: 1;
98
- transform: translateX(0);
99
- }
100
- }
101
- [data-variant='success'] {
102
- border-color: #16a34a;
103
- }
104
- [data-variant='destructive'] {
105
- border-color: #dc2626;
106
- }
107
- [data-variant='warning'] {
108
- border-color: #d97706;
109
- }
110
- [data-variant='default'] {
111
- border-color: #1d4ed8;
112
- }
113
- .close {
114
- background: none;
115
- border: none;
116
- box-shadow: none;
117
- cursor: pointer;
118
- font-size: 1rem;
119
- padding: 0 0 0 0.5rem;
120
- transition: none;
121
- font-family: inherit;
122
- }
123
- .close:hover {
124
- transform: none;
125
- }
126
- `,
127
- ],
128
- changeDetection: ChangeDetectionStrategy.Eager,
129
- template: `
130
- <div class="row">
131
- <button class="btn-ok" (click)="toast.show('File saved!', { variant: 'success' })">OK</button>
132
- <button class="btn-err" (click)="toast.show('Access denied!', { variant: 'destructive' })">
133
- ERR
134
- </button>
135
- <button class="btn-warn" (click)="toast.show('Low disk space.', { variant: 'warning' })">
136
- WARN
137
- </button>
138
- <button class="btn-info" (click)="toast.show('Update available.')">INFO</button>
139
- </div>
140
- <ol
141
- kjToastViewport
142
- [kjToastDefaultTemplate]="defaultTpl"
143
- #vp="kjToastViewport"
144
- aria-label="Notifications"
145
- >
146
- @for (r of vp.renderable(); track r.id) {
147
- <li><ng-container *ngTemplateOutlet="r.template; context: r.context" /></li>
148
- }
149
- </ol>
150
-
151
- <ng-template #defaultTpl let-ctx>
152
- <div kjToast [kjToastVariant]="ctx.variant" [kjToastId]="ctx.id">
153
- <span>{{ ctx.message }}</span>
154
- <button class="close" (click)="ctx.dismiss()" aria-label="Dismiss">×</button>
155
- </div>
156
- </ng-template>
157
- `,
158
- })
159
- export class ToastRetroExample {
160
- readonly toast = inject(KjToastService);
161
- }
@@ -1,28 +0,0 @@
1
- export {
2
- KjToast,
3
- KjToastViewport,
4
- KjToastClose,
5
- KjToastPanel,
6
- type KjToastRenderable,
7
- type KjToastVariant,
8
- type KjToastContext,
9
- type KjToastOptions,
10
- type KjToastPositionX,
11
- type KjToastPositionY,
12
- } from './toast';
13
- export {
14
- KjToastService,
15
- type KjToastItem,
16
- type KjToastTemplateContext,
17
- type KjToastSugarVariant,
18
- } from './toast.service';
19
- export { KjToastRef } from './toast.ref';
20
- export {
21
- KJ_TOAST_STRATEGY,
22
- KJ_TOAST_SONNER_STRATEGY,
23
- KJ_TOAST_LIST_STRATEGY,
24
- type KjToastStrategy,
25
- provideKjToastStrategy,
26
- provideKjToastSonnerStrategy,
27
- provideKjToastListStrategy,
28
- } from './toast.strategy';
@@ -1,26 +0,0 @@
1
- import type { KjOverlayController } from '../primitives/overlay/controller';
2
-
3
- /**
4
- * Reference returned from `KjToastService.show()` (and the variant sugar
5
- * methods). Owns the toast's overlay controller and its id, and exposes a
6
- * single `close()` method.
7
- *
8
- * Toast queue management (auto-dismiss timers, max-visible cap, pause/resume)
9
- * is owned by `KjToastService`; the ref is the per-toast handle returned to
10
- * callers.
11
- */
12
- export class KjToastRef {
13
- constructor(
14
- /** Stable id for this toast — also used by the service's queue. */
15
- public readonly id: string,
16
- /** The overlay controller backing this toast's panel. */
17
- public readonly controller: KjOverlayController,
18
- private readonly _dismiss: (id: string) => void,
19
- ) {}
20
-
21
- /** Dismiss this toast. Idempotent. */
22
- close(): void {
23
- this._dismiss(this.id);
24
- this.controller.close('programmatic');
25
- }
26
- }