@kouji-ui/core 0.1.1 → 0.1.3

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 +15 -7
  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,75 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { render } from '@testing-library/angular';
3
- import { describe, it, expect } from 'vitest';
4
- import {
5
- KjCombobox,
6
- KjComboboxInput,
7
- KjComboboxListbox,
8
- KjComboboxOption,
9
- } from './combobox';
10
-
11
- describe('KjCombobox', () => {
12
- it('input has role=combobox and aria-haspopup=listbox', async () => {
13
- @Component({
14
- selector: 'kj-cb-host',
15
- standalone: true,
16
- imports: [KjCombobox, KjComboboxInput, KjComboboxListbox, KjComboboxOption],
17
- template: `
18
- <div kjCombobox>
19
- <input kjComboboxInput #t="kjOverlayTrigger" aria-label="Country" />
20
- <div kjComboboxListbox [kjFor]="t">
21
- <button kjComboboxOption [kjOptionValue]="'fr'">France</button>
22
- </div>
23
- </div>
24
- `,
25
- })
26
- class Host {}
27
- const { container } = await render(Host);
28
- const input = container.querySelector('input[kjComboboxInput]')!;
29
- expect(input.getAttribute('role')).toBe('combobox');
30
- expect(input.getAttribute('aria-haspopup')).toBe('listbox');
31
- expect(input.getAttribute('aria-expanded')).toBe('false');
32
- });
33
-
34
- it('panel exposes role=listbox', async () => {
35
- @Component({
36
- selector: 'kj-cb-host',
37
- standalone: true,
38
- imports: [KjCombobox, KjComboboxInput, KjComboboxListbox, KjComboboxOption],
39
- template: `
40
- <div kjCombobox>
41
- <input kjComboboxInput #t="kjOverlayTrigger" aria-label="Country" />
42
- <div kjComboboxListbox [kjFor]="t">
43
- <button kjComboboxOption [kjOptionValue]="'fr'">France</button>
44
- </div>
45
- </div>
46
- `,
47
- })
48
- class Host {}
49
- const { container } = await render(Host);
50
- const panel = container.querySelector('[kjComboboxListbox]') as HTMLElement;
51
- expect(panel.getAttribute('role')).toBe('listbox');
52
- });
53
-
54
- it('options carry role=option', async () => {
55
- @Component({
56
- selector: 'kj-cb-host',
57
- standalone: true,
58
- imports: [KjCombobox, KjComboboxInput, KjComboboxListbox, KjComboboxOption],
59
- template: `
60
- <div kjCombobox>
61
- <input kjComboboxInput #t="kjOverlayTrigger" aria-label="Country" />
62
- <div kjComboboxListbox [kjFor]="t">
63
- <button kjComboboxOption [kjOptionValue]="'fr'">France</button>
64
- <button kjComboboxOption [kjOptionValue]="'de'">Germany</button>
65
- </div>
66
- </div>
67
- `,
68
- })
69
- class Host {}
70
- const { container } = await render(Host);
71
- const opts = container.querySelectorAll('[kjComboboxOption]');
72
- expect(opts.length).toBe(2);
73
- opts.forEach(o => expect(o.getAttribute('role')).toBe('option'));
74
- });
75
- });
@@ -1,4 +0,0 @@
1
- export * from './combobox-root';
2
- export * from './combobox-input';
3
- export * from './combobox-listbox';
4
- export * from './combobox-option';
@@ -1,4 +0,0 @@
1
- export * from './combobox-root';
2
- export * from './combobox-input';
3
- export * from './combobox-listbox';
4
- export * from './combobox-option';
@@ -1,36 +0,0 @@
1
- import { Directive, computed, inject } from '@angular/core';
2
- import { KjCommandPalette } from './command-palette';
3
-
4
- /**
5
- * Slot shown when the palette has no visible items and is not loading.
6
- * Sets `role="status"` and `aria-live="polite"` for live-region announcements.
7
- * Hidden when items are visible or loading is active.
8
- *
9
- * @example
10
- * ```html
11
- * <div kjCommandList>
12
- * <div kjCommandEmpty>No results found.</div>
13
- * <button kjCommandItem>…</button>
14
- * </div>
15
- * ```
16
- * @doc-category Core/Actions
17
- * @doc
18
- * @doc-name command-palette
19
- */
20
- @Directive({
21
- selector: '[kjCommandEmpty]',
22
- standalone: true,
23
- host: {
24
- 'role': 'status',
25
- 'aria-live': 'polite',
26
- '[hidden]': 'isHidden()',
27
- },
28
- })
29
- export class KjCommandEmpty {
30
- private readonly ctx = inject(KjCommandPalette);
31
-
32
- /** Hidden unless there are no visible items and loading is false. */
33
- readonly isHidden = computed(() =>
34
- this.ctx.visibleItems().length > 0 || this.ctx.loading()
35
- );
36
- }
@@ -1,21 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import { KjListGroup } from '../primitives/list';
3
-
4
- /**
5
- * Group wrapper for command items. Composes `KjListGroup` for the
6
- * shared role=group / aria-labelledby / auto-hide-when-empty behavior;
7
- * this selector exists so existing command-palette templates keep
8
- * working unchanged.
9
- *
10
- * Pair with a `[kjListGroupLabel]` heading element for the section title.
11
- *
12
- * @doc-category Core/Actions
13
- * @doc
14
- * @doc-name command-palette
15
- */
16
- @Directive({
17
- selector: '[kjCommandGroup]',
18
- standalone: true,
19
- hostDirectives: [KjListGroup],
20
- })
21
- export class KjCommandGroup {}
@@ -1,70 +0,0 @@
1
- import {
2
- Directive,
3
- ElementRef,
4
- HostListener,
5
- OnDestroy,
6
- OnInit,
7
- inject,
8
- } from '@angular/core';
9
- import { KjListNavigator } from '../primitives/list';
10
- import { KjCommandPalette } from './command-palette';
11
-
12
- /**
13
- * Search input inside the command palette. Composes `KjListNavigator`
14
- * — `aria-activedescendant` and the APG combobox 1.2 keyboard contract
15
- * live here, not on the listbox.
16
- *
17
- * Keyboard contract:
18
- * - `ArrowDown` / `ArrowUp` — move active item (handled by `KjListNavigator`)
19
- * - `Home` / `End` — jump to first/last (handled by `KjListNavigator`)
20
- * - `Enter` — activate active item (handled by `KjListNavigator`)
21
- * - `Escape` — first press clears query; second press propagates to dialog
22
- *
23
- * @doc-category Core/Actions
24
- * @doc
25
- * @doc-name command-palette
26
- */
27
- @Directive({
28
- selector: 'input[kjCommandInput]',
29
- standalone: true,
30
- exportAs: 'kjCommandInput',
31
- hostDirectives: [KjListNavigator],
32
- host: {
33
- 'role': 'combobox',
34
- 'autocomplete': 'off',
35
- 'autocorrect': 'off',
36
- 'spellcheck': 'false',
37
- 'aria-autocomplete': 'list',
38
- 'aria-haspopup': 'listbox',
39
- '[attr.aria-controls]': 'palette.listId',
40
- '[attr.aria-expanded]': '"true"',
41
- '[attr.aria-busy]': 'palette.loading() ? "true" : null',
42
- '(input)': 'palette.setQuery($any($event.target).value)',
43
- },
44
- })
45
- export class KjCommandInput implements OnInit, OnDestroy {
46
- protected readonly palette = inject(KjCommandPalette);
47
- private readonly nav = inject(KjListNavigator);
48
- private readonly el = inject<ElementRef<HTMLInputElement>>(ElementRef);
49
-
50
- ngOnInit(): void {
51
- this.palette._setNavigator(this.nav);
52
- }
53
-
54
- ngOnDestroy(): void {
55
- this.palette._setNavigator(null);
56
- }
57
-
58
- @HostListener('keydown', ['$event'])
59
- onKeydown(event: KeyboardEvent): void {
60
- if (event.key === 'Escape') {
61
- // First press: clear query. Second press propagates to the dialog.
62
- if (this.palette.query()) {
63
- event.stopPropagation();
64
- this.palette.setQuery('');
65
- this.el.nativeElement.value = '';
66
- }
67
- // If query is already empty, let the event bubble to KjDialog's Escape handler
68
- }
69
- }
70
- }
@@ -1,60 +0,0 @@
1
- import {
2
- Directive,
3
- computed,
4
- inject,
5
- } from '@angular/core';
6
- import { KjListItem, injectListItem } from '../primitives/list';
7
- import { KjCommandPalette } from './command-palette';
8
-
9
- /**
10
- * Individual command item (`role="option"`). Composes `KjListItem` for
11
- * id / value / label / keywords / disabled / click+keyboard activation.
12
- * The activation → `palette.activate(value)` wiring is now handled
13
- * centrally by `KjCommandPalette.afterSelect`, called from
14
- * `KjListItem` — this directive only contributes role, classes, the
15
- * `kj*` input aliases, and the active-item ARIA / data attributes.
16
- *
17
- * @example
18
- * ```html
19
- * <div kjCommandPalette>
20
- * <div kjCommandList>
21
- * <button kjCommandItem [kjValue]="'open-settings'">Settings</button>
22
- * </div>
23
- * </div>
24
- * ```
25
- * @doc-category Core/Actions
26
- * @doc
27
- * @doc-name command-palette
28
- */
29
- @Directive({
30
- selector: '[kjCommandItem]',
31
- standalone: true,
32
- exportAs: 'kjCommandItem',
33
- hostDirectives: [
34
- {
35
- directive: KjListItem,
36
- inputs: [
37
- 'kjItemValue:kjValue',
38
- 'kjItemLabel:kjLabel',
39
- 'kjItemKeywords:kjKeywords',
40
- 'kjShortcut:kjShortcut',
41
- 'kjDisabled:kjDisabled',
42
- ],
43
- },
44
- ],
45
- host: {
46
- 'class': 'kj-command-item',
47
- 'role': 'option',
48
- '[attr.aria-selected]': 'isActive() ? "true" : "false"',
49
- '[attr.data-active]': 'isActive() ? "" : null',
50
- },
51
- })
52
- export class KjCommandItem {
53
- private readonly item = injectListItem<unknown>();
54
- private readonly palette = inject(KjCommandPalette);
55
-
56
- /** Whether this item is the active (highlighted) item. */
57
- readonly isActive = computed(() =>
58
- this.palette.activeId() !== null && this.palette.activeId() === this.item.id,
59
- );
60
- }
@@ -1,25 +0,0 @@
1
- import { Directive, inject } from '@angular/core';
2
- import { KjCommandPalette } from './command-palette';
3
-
4
- /**
5
- * Listbox panel for the command palette. Role-only — keyboard nav
6
- * lives on `KjCommandInput` per APG combobox 1.2.
7
- *
8
- * @doc-category Core/Actions
9
- * @doc
10
- * @doc-name command-palette
11
- */
12
- @Directive({
13
- selector: '[kjCommandList]',
14
- standalone: true,
15
- host: {
16
- 'role': 'listbox',
17
- '[id]': 'palette.listId',
18
- 'class': 'kj-command-list',
19
- '[attr.aria-label]': '"Commands"',
20
- },
21
- })
22
- export class KjCommandList {
23
- /** @internal — for the [id] host binding. */
24
- protected readonly palette = inject(KjCommandPalette);
25
- }
@@ -1,74 +0,0 @@
1
- // command-palette-dialog.ts
2
- import {
3
- Component,
4
- ChangeDetectionStrategy,
5
- ViewEncapsulation,
6
- } from '@angular/core';
7
- import { KjOverlayPanel } from '../primitives/overlay/panel';
8
- import { KjOverlayController } from '../primitives/overlay/controller';
9
- import {
10
- KJ_OVERLAY_MOUNT_STRATEGY,
11
- KJ_OVERLAY_POSITION_STRATEGY,
12
- KJ_OVERLAY_BACKDROP_STRATEGY,
13
- KJ_OVERLAY_FOCUS_TRAP_STRATEGY,
14
- KJ_OVERLAY_SCROLL_LOCK_STRATEGY,
15
- KJ_OVERLAY_LIVE_ANNOUNCER_STRATEGY,
16
- KJ_OVERLAY_TRIGGER_EVENT_STRATEGY,
17
- KJ_OVERLAY_PANEL_ROLE,
18
- } from '../primitives/overlay/tokens';
19
- import { bodyPortal } from '../primitives/overlay/strategies/mount/body-portal';
20
- import { viewportCentered } from '../primitives/overlay/strategies/position/viewport-centered';
21
- import { solidBackdrop } from '../primitives/overlay/strategies/backdrop/solid';
22
- import { tabCycle } from '../primitives/overlay/strategies/focus-trap/tab-cycle';
23
- import { htmlOverflow } from '../primitives/overlay/strategies/scroll-lock/html-overflow';
24
- import { silent } from '../primitives/overlay/strategies/live-announcer/silent';
25
- import { programmatic } from '../primitives/overlay/strategies/trigger-event/programmatic';
26
-
27
- /**
28
- * Modal panel for the command palette (Cmd-K pattern). Composes
29
- * `KjOverlayPanel` and provides the modal-list strategy bundle: portalled
30
- * mount, viewport-centered position, solid (inert + close-on-click) backdrop,
31
- * tab-cycle focus trap with first-focus + return, html-overflow scroll lock,
32
- * and a silent live announcer.
33
- *
34
- * Pair with `[kjCommandPaletteTrigger]` (which supplies an `onHotkey`
35
- * trigger-event strategy) for the standard mod+k flow, or use programmatic
36
- * open/close via the bound `KjOverlayController`.
37
- *
38
- * The host element gets `aria-label="Command palette"` and `role="dialog"`.
39
- *
40
- * @doc-category Core/Actions
41
- * @doc
42
- * @doc-name command-palette
43
- */
44
- @Component({
45
- selector: 'kj-command-palette-dialog',
46
- standalone: true,
47
- hostDirectives: [
48
- { directive: KjOverlayPanel, inputs: ['kjFor'] },
49
- ],
50
- providers: [
51
- KjOverlayController,
52
- { provide: KJ_OVERLAY_MOUNT_STRATEGY, useFactory: () => bodyPortal() },
53
- { provide: KJ_OVERLAY_POSITION_STRATEGY, useFactory: () => viewportCentered() },
54
- {
55
- provide: KJ_OVERLAY_BACKDROP_STRATEGY,
56
- useFactory: () => solidBackdrop({ inert: true, closeOnClick: true }),
57
- },
58
- {
59
- provide: KJ_OVERLAY_FOCUS_TRAP_STRATEGY,
60
- useFactory: () => tabCycle({ initialFocus: 'first', returnFocus: true }),
61
- },
62
- { provide: KJ_OVERLAY_SCROLL_LOCK_STRATEGY, useFactory: () => htmlOverflow() },
63
- { provide: KJ_OVERLAY_LIVE_ANNOUNCER_STRATEGY, useFactory: () => silent() },
64
- { provide: KJ_OVERLAY_TRIGGER_EVENT_STRATEGY, useFactory: () => programmatic() },
65
- { provide: KJ_OVERLAY_PANEL_ROLE, useValue: 'dialog' as const },
66
- ],
67
- changeDetection: ChangeDetectionStrategy.OnPush,
68
- encapsulation: ViewEncapsulation.None,
69
- host: {
70
- '[attr.aria-label]': '"Command palette"',
71
- },
72
- template: `<ng-content />`,
73
- })
74
- export class KjCommandPaletteDialog {}
@@ -1,64 +0,0 @@
1
- // command-palette-trigger.ts
2
- import { Directive, inject, input } from '@angular/core';
3
- import { KjOverlayTrigger } from '../primitives/overlay/trigger';
4
- import type { KjOverlayPanel } from '../primitives/overlay/panel';
5
- import { KjOverlayController } from '../primitives/overlay/controller';
6
- import {
7
- KJ_OVERLAY_TRIGGER_EVENT_STRATEGY,
8
- KJ_OVERLAY_PANEL_ROLE,
9
- } from '../primitives/overlay/tokens';
10
- import { onHotkey } from '../primitives/overlay/strategies/trigger-event/on-hotkey';
11
-
12
- /**
13
- * Hotkey-driven trigger for the command palette. Toggles the linked
14
- * `<kj-command-palette-dialog>` panel when the configured chord fires
15
- * (default `mod+k` — Cmd+K on macOS, Ctrl+K elsewhere).
16
- *
17
- * Composes `KjOverlayTrigger` via `hostDirectives` and provides an
18
- * `onHotkey()` trigger-event strategy (replacing the legacy
19
- * `KjCommandPaletteHotkey` directive).
20
- *
21
- * @example
22
- * ```html
23
- * <button kjCommandPaletteTrigger #t="kjCommandPaletteTrigger" kjHotkey="mod+k">
24
- * Open palette
25
- * </button>
26
- * <kj-command-palette-dialog [kjFor]="t">
27
- * <div kjCommandPalette>...</div>
28
- * </kj-command-palette-dialog>
29
- * ```
30
- *
31
- * @doc-category Core/Actions
32
- */
33
- @Directive({
34
- selector: '[kjCommandPaletteTrigger]',
35
- exportAs: 'kjCommandPaletteTrigger',
36
- standalone: true,
37
- hostDirectives: [
38
- { directive: KjOverlayTrigger, inputs: ['kjOpen'] },
39
- ],
40
- providers: [
41
- KjOverlayController,
42
- {
43
- provide: KJ_OVERLAY_TRIGGER_EVENT_STRATEGY,
44
- useFactory: () => onHotkey('mod+k'),
45
- },
46
- { provide: KJ_OVERLAY_PANEL_ROLE, useValue: 'dialog' as const },
47
- ],
48
- })
49
- export class KjCommandPaletteTrigger {
50
- /**
51
- * Keyboard chord. `mod` resolves to `Meta` on macOS, `Ctrl` elsewhere.
52
- * Captured at provider construction; reactive switching is a follow-up.
53
- */
54
- readonly kjHotkey = input<string>('mod+k');
55
-
56
- private readonly _overlayTrigger = inject(KjOverlayTrigger, { self: true });
57
- /** The controller of the composed `KjOverlayTrigger`, exposed for sibling `[kjFor]` panels. */
58
- get controller(): KjOverlayController {
59
- return this._overlayTrigger.controller;
60
- }
61
- attachPanel(panel: KjOverlayPanel): void {
62
- this._overlayTrigger.attachPanel(panel);
63
- }
64
- }
@@ -1,53 +0,0 @@
1
- /**
2
- * Filter function type for the command palette.
3
- * Returns a numeric score: > 0 means the item is visible, 0 means hidden.
4
- * Higher scores are more relevant when sorting by score.
5
- */
6
- export type KjCommandFilter = (query: string, haystacks: readonly string[]) => number;
7
-
8
- /**
9
- * Strip diacritic marks from a string (e.g. `café` → `cafe`).
10
- * Uses NFD normalisation followed by removal of Unicode diacritic characters.
11
- * Note: locale-naive for v1 (Turkish/German edge cases are documented).
12
- */
13
- export function stripDiacritics(str: string): string {
14
- return str.normalize('NFD').replace(/\p{Diacritic}/gu, '');
15
- }
16
-
17
- /**
18
- * Default filter: case- and diacritic-insensitive substring match.
19
- * Returns score 1 if any haystack contains the needle, 0 otherwise.
20
- * Returns 1 for empty queries (all items visible).
21
- */
22
- export const kjSubstringFilter: KjCommandFilter = (query, haystacks) => {
23
- if (!query) return 1;
24
- const needle = stripDiacritics(query.toLowerCase());
25
- return haystacks.some(h => stripDiacritics(h.toLowerCase()).includes(needle)) ? 1 : 0;
26
- };
27
-
28
- /**
29
- * Optional fuzzy filter: checks whether all characters of the query appear
30
- * in the haystack in order (abbreviation matching).
31
- * E.g. `gth` matches `git checkout`.
32
- * Returns score 1 if any haystack matches, 0 otherwise.
33
- * Returns 1 for empty queries.
34
- *
35
- * @example
36
- * ```html
37
- * <div kjCommandPalette [kjFilter]="kjFuzzyFilter">…</div>
38
- * ```
39
- */
40
- export const kjFuzzyFilter: KjCommandFilter = (query, haystacks) => {
41
- if (!query) return 1;
42
- const needle = query.toLowerCase();
43
- return haystacks.some(h => {
44
- const hay = h.toLowerCase();
45
- let i = 0;
46
- for (const c of needle) {
47
- const j = hay.indexOf(c, i);
48
- if (j < 0) return false;
49
- i = j + 1;
50
- }
51
- return true;
52
- }) ? 1 : 0;
53
- };