@kouji-ui/components 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 (733) hide show
  1. package/fesm2022/kouji-ui-components.mjs +17668 -0
  2. package/fesm2022/kouji-ui-components.mjs.map +1 -0
  3. package/package.json +17 -10
  4. package/types/kouji-ui-components.d.ts +8032 -0
  5. package/.turbo/turbo-build.log +0 -29
  6. package/CHANGELOG.md +0 -192
  7. package/ng-package.json +0 -7
  8. package/src/accordion/_examples/accordion.default.example.ts +0 -31
  9. package/src/accordion/_examples/accordion.disabled.example.ts +0 -38
  10. package/src/accordion/_examples/accordion.multiple.example.ts +0 -31
  11. package/src/accordion/_examples/accordion.rich-content.example.ts +0 -49
  12. package/src/accordion/_examples/index.ts +0 -6
  13. package/src/accordion/accordion.arrow-nav.example.ts +0 -39
  14. package/src/accordion/accordion.css +0 -68
  15. package/src/accordion/accordion.playground.ts +0 -119
  16. package/src/accordion/accordion.spec.ts +0 -117
  17. package/src/accordion/accordion.ts +0 -153
  18. package/src/accordion/accordion.usage.example.ts +0 -38
  19. package/src/accordion/accordion.value.example.ts +0 -60
  20. package/src/accordion/index.ts +0 -1
  21. package/src/alert/_examples/alert.banner.example.ts +0 -56
  22. package/src/alert/_examples/alert.dismissible.example.ts +0 -53
  23. package/src/alert/_examples/alert.example.ts +0 -40
  24. package/src/alert/_examples/alert.variants.example.ts +0 -66
  25. package/src/alert/_examples/alert.with-actions.example.ts +0 -57
  26. package/src/alert/_examples/index.ts +0 -7
  27. package/src/alert/alert.css +0 -133
  28. package/src/alert/alert.playground.ts +0 -111
  29. package/src/alert/alert.spec.ts +0 -167
  30. package/src/alert/alert.ts +0 -250
  31. package/src/alert/alert.usage.example.ts +0 -58
  32. package/src/alert/index.ts +0 -8
  33. package/src/avatar/_examples/avatar-group.example.ts +0 -31
  34. package/src/avatar/_examples/avatar-group.list.example.ts +0 -45
  35. package/src/avatar/_examples/avatar-group.overflow.example.ts +0 -33
  36. package/src/avatar/_examples/avatar-group.shapes.example.ts +0 -39
  37. package/src/avatar/_examples/avatar-group.sizes.example.ts +0 -44
  38. package/src/avatar/_examples/avatar.default.example.ts +0 -18
  39. package/src/avatar/_examples/avatar.initials.example.ts +0 -20
  40. package/src/avatar/_examples/avatar.shapes.example.ts +0 -22
  41. package/src/avatar/_examples/avatar.sizes.example.ts +0 -26
  42. package/src/avatar/_examples/avatar.with-image.example.ts +0 -20
  43. package/src/avatar/_examples/index.ts +0 -12
  44. package/src/avatar/avatar-group.spec.ts +0 -138
  45. package/src/avatar/avatar-group.ts +0 -127
  46. package/src/avatar/avatar-group.usage.example.ts +0 -30
  47. package/src/avatar/avatar.css +0 -58
  48. package/src/avatar/avatar.playground.ts +0 -95
  49. package/src/avatar/avatar.ts +0 -123
  50. package/src/avatar/index.ts +0 -2
  51. package/src/badge/_examples/badge.default.example.ts +0 -18
  52. package/src/badge/_examples/badge.sizes.example.ts +0 -25
  53. package/src/badge/_examples/badge.variants.example.ts +0 -24
  54. package/src/badge/_examples/badge.with-dot.example.ts +0 -31
  55. package/src/badge/_examples/badge.with-icon.example.ts +0 -23
  56. package/src/badge/_examples/index.ts +0 -7
  57. package/src/badge/badge.css +0 -59
  58. package/src/badge/badge.playground.ts +0 -49
  59. package/src/badge/badge.ts +0 -86
  60. package/src/badge/badge.usage.example.ts +0 -22
  61. package/src/badge/index.ts +0 -1
  62. package/src/breadcrumb/_examples/breadcrumb.custom-separator.example.ts +0 -53
  63. package/src/breadcrumb/_examples/breadcrumb.example.ts +0 -48
  64. package/src/breadcrumb/_examples/breadcrumb.long-path.example.ts +0 -58
  65. package/src/breadcrumb/_examples/breadcrumb.truncated.example.ts +0 -59
  66. package/src/breadcrumb/_examples/breadcrumb.with-icons.example.ts +0 -66
  67. package/src/breadcrumb/_examples/index.ts +0 -7
  68. package/src/breadcrumb/breadcrumb.css +0 -121
  69. package/src/breadcrumb/breadcrumb.playground.ts +0 -93
  70. package/src/breadcrumb/breadcrumb.spec.ts +0 -230
  71. package/src/breadcrumb/breadcrumb.ts +0 -272
  72. package/src/breadcrumb/breadcrumb.usage.example.ts +0 -45
  73. package/src/breadcrumb/index.ts +0 -1
  74. package/src/button/_examples/button.anchor.example.ts +0 -18
  75. package/src/button/_examples/button.configured.example.ts +0 -43
  76. package/src/button/_examples/button.disabled.example.ts +0 -25
  77. package/src/button/_examples/button.example.ts +0 -22
  78. package/src/button/_examples/button.icon.example.ts +0 -27
  79. package/src/button/_examples/button.loading.example.ts +0 -31
  80. package/src/button/_examples/button.pressed.example.ts +0 -24
  81. package/src/button/_examples/button.sizes.example.ts +0 -26
  82. package/src/button/_examples/button.usage.example.ts +0 -66
  83. package/src/button/_examples/button.variants.example.ts +0 -26
  84. package/src/button/_examples/index.ts +0 -12
  85. package/src/button/button.css +0 -263
  86. package/src/button/button.playground.ts +0 -79
  87. package/src/button/button.spec.ts +0 -100
  88. package/src/button/button.ts +0 -150
  89. package/src/button/index.ts +0 -1
  90. package/src/button-group/_examples/button-group.example.ts +0 -30
  91. package/src/button-group/_examples/button-group.icon-only.example.ts +0 -30
  92. package/src/button-group/_examples/button-group.toggle.example.ts +0 -36
  93. package/src/button-group/_examples/button-group.variants.example.ts +0 -40
  94. package/src/button-group/_examples/button-group.vertical.example.ts +0 -29
  95. package/src/button-group/_examples/index.ts +0 -7
  96. package/src/button-group/button-group.css +0 -80
  97. package/src/button-group/button-group.playground.ts +0 -94
  98. package/src/button-group/button-group.spec.ts +0 -119
  99. package/src/button-group/button-group.ts +0 -130
  100. package/src/button-group/button-group.usage.example.ts +0 -35
  101. package/src/button-group/index.ts +0 -1
  102. package/src/calendar/_examples/calendar.example.ts +0 -33
  103. package/src/calendar/_examples/index.ts +0 -3
  104. package/src/calendar/calendar.css +0 -129
  105. package/src/calendar/calendar.playground.ts +0 -84
  106. package/src/calendar/calendar.spec.ts +0 -50
  107. package/src/calendar/calendar.ts +0 -171
  108. package/src/calendar/calendar.usage.example.ts +0 -33
  109. package/src/calendar/index.ts +0 -1
  110. package/src/card/_examples/card.cover.example.ts +0 -53
  111. package/src/card/_examples/card.example.ts +0 -27
  112. package/src/card/_examples/card.full.example.ts +0 -51
  113. package/src/card/_examples/index.ts +0 -5
  114. package/src/card/card.css +0 -120
  115. package/src/card/card.playground.ts +0 -116
  116. package/src/card/card.spec.ts +0 -50
  117. package/src/card/card.ts +0 -194
  118. package/src/card/card.usage.example.ts +0 -46
  119. package/src/card/index.ts +0 -1
  120. package/src/carousel/_examples/carousel.autoplay.example.ts +0 -69
  121. package/src/carousel/_examples/carousel.example.ts +0 -60
  122. package/src/carousel/_examples/carousel.indicators.example.ts +0 -64
  123. package/src/carousel/_examples/carousel.lazy-load.example.ts +0 -85
  124. package/src/carousel/_examples/carousel.tabs-pattern.example.ts +0 -61
  125. package/src/carousel/_examples/index.ts +0 -7
  126. package/src/carousel/carousel.css +0 -181
  127. package/src/carousel/carousel.playground.ts +0 -135
  128. package/src/carousel/carousel.spec.ts +0 -211
  129. package/src/carousel/carousel.ts +0 -399
  130. package/src/carousel/carousel.usage.example.ts +0 -46
  131. package/src/carousel/index.ts +0 -1
  132. package/src/cascade-select/_examples/cascade-select.data-driven.example.ts +0 -119
  133. package/src/cascade-select/_examples/cascade-select.disabled.example.ts +0 -74
  134. package/src/cascade-select/_examples/cascade-select.example.ts +0 -80
  135. package/src/cascade-select/_examples/cascade-select.field.example.ts +0 -73
  136. package/src/cascade-select/_examples/cascade-select.path.example.ts +0 -85
  137. package/src/cascade-select/_examples/index.ts +0 -7
  138. package/src/cascade-select/cascade-select.css +0 -120
  139. package/src/cascade-select/cascade-select.playground.ts +0 -133
  140. package/src/cascade-select/cascade-select.ts +0 -201
  141. package/src/cascade-select/cascade-select.usage.example.ts +0 -44
  142. package/src/cascade-select/index.ts +0 -5
  143. package/src/chat/_examples/chat-bubble.example.ts +0 -71
  144. package/src/chat/_examples/chat-bubble.grouped.example.ts +0 -69
  145. package/src/chat/_examples/chat-bubble.sides.example.ts +0 -41
  146. package/src/chat/_examples/chat-bubble.variants.example.ts +0 -58
  147. package/src/chat/_examples/chat-bubble.with-state.example.ts +0 -57
  148. package/src/chat/_examples/index.ts +0 -7
  149. package/src/chat/chat.css +0 -231
  150. package/src/chat/chat.playground.ts +0 -171
  151. package/src/chat/chat.spec.ts +0 -343
  152. package/src/chat/chat.ts +0 -269
  153. package/src/chat/chat.usage.example.ts +0 -49
  154. package/src/chat/index.ts +0 -13
  155. package/src/checkbox/_examples/checkbox.checked.example.ts +0 -20
  156. package/src/checkbox/_examples/checkbox.default.example.ts +0 -20
  157. package/src/checkbox/_examples/checkbox.disabled.example.ts +0 -26
  158. package/src/checkbox/_examples/checkbox.indeterminate.example.ts +0 -20
  159. package/src/checkbox/_examples/checkbox.usage.example.ts +0 -62
  160. package/src/checkbox/_examples/index.ts +0 -7
  161. package/src/checkbox/checkbox.css +0 -74
  162. package/src/checkbox/checkbox.playground.ts +0 -68
  163. package/src/checkbox/checkbox.ts +0 -122
  164. package/src/checkbox/index.ts +0 -1
  165. package/src/color-picker/_examples/color-picker.alpha.example.ts +0 -36
  166. package/src/color-picker/_examples/color-picker.example.ts +0 -34
  167. package/src/color-picker/_examples/color-picker.hex-input.example.ts +0 -53
  168. package/src/color-picker/_examples/color-picker.in-form.example.ts +0 -60
  169. package/src/color-picker/_examples/color-picker.usage.example.ts +0 -58
  170. package/src/color-picker/_examples/color-picker.with-presets.example.ts +0 -45
  171. package/src/color-picker/_examples/index.ts +0 -8
  172. package/src/color-picker/color-picker.css +0 -183
  173. package/src/color-picker/color-picker.playground.ts +0 -83
  174. package/src/color-picker/color-picker.spec.ts +0 -94
  175. package/src/color-picker/color-picker.ts +0 -234
  176. package/src/color-picker/index.ts +0 -1
  177. package/src/combobox/_examples/combobox.async.example.ts +0 -85
  178. package/src/combobox/_examples/combobox.empty-state.example.ts +0 -36
  179. package/src/combobox/_examples/combobox.example.ts +0 -36
  180. package/src/combobox/_examples/combobox.free-text.example.ts +0 -42
  181. package/src/combobox/_examples/combobox.usage.example.ts +0 -51
  182. package/src/combobox/_examples/combobox.with-icons.example.ts +0 -49
  183. package/src/combobox/_examples/index.ts +0 -8
  184. package/src/combobox/combobox.css +0 -101
  185. package/src/combobox/combobox.playground.ts +0 -90
  186. package/src/combobox/combobox.spec.ts +0 -111
  187. package/src/combobox/combobox.ts +0 -219
  188. package/src/combobox/index.ts +0 -6
  189. package/src/command-palette/_examples/command-palette.async.example.ts +0 -99
  190. package/src/command-palette/_examples/command-palette.dialog.example.ts +0 -90
  191. package/src/command-palette/_examples/command-palette.example.ts +0 -40
  192. package/src/command-palette/_examples/command-palette.fuzzy.example.ts +0 -54
  193. package/src/command-palette/_examples/command-palette.groups.example.ts +0 -55
  194. package/src/command-palette/_examples/command-palette.usage.example.ts +0 -49
  195. package/src/command-palette/_examples/index.ts +0 -8
  196. package/src/command-palette/command-palette.css +0 -234
  197. package/src/command-palette/command-palette.playground.ts +0 -119
  198. package/src/command-palette/command-palette.ts +0 -448
  199. package/src/command-palette/index.ts +0 -10
  200. package/src/confirm-popup/_examples/confirm-popup.destructive.example.ts +0 -72
  201. package/src/confirm-popup/_examples/confirm-popup.example.ts +0 -82
  202. package/src/confirm-popup/_examples/confirm-popup.placement.example.ts +0 -97
  203. package/src/confirm-popup/_examples/confirm-popup.usage.example.ts +0 -94
  204. package/src/confirm-popup/_examples/confirm-popup.with-message.example.ts +0 -76
  205. package/src/confirm-popup/_examples/index.ts +0 -7
  206. package/src/confirm-popup/confirm-popup.css +0 -47
  207. package/src/confirm-popup/confirm-popup.playground.ts +0 -109
  208. package/src/confirm-popup/confirm-popup.spec.ts +0 -209
  209. package/src/confirm-popup/confirm-popup.ts +0 -279
  210. package/src/confirm-popup/index.ts +0 -1
  211. package/src/date-picker/_examples/date-picker.disabled-dates.example.ts +0 -44
  212. package/src/date-picker/_examples/date-picker.example.ts +0 -38
  213. package/src/date-picker/_examples/date-picker.locale.example.ts +0 -50
  214. package/src/date-picker/_examples/date-picker.readonly.example.ts +0 -32
  215. package/src/date-picker/_examples/date-picker.usage.example.ts +0 -60
  216. package/src/date-picker/_examples/date-picker.with-min-max.example.ts +0 -47
  217. package/src/date-picker/_examples/index.ts +0 -8
  218. package/src/date-picker/date-picker.css +0 -61
  219. package/src/date-picker/date-picker.playground.ts +0 -79
  220. package/src/date-picker/date-picker.spec.ts +0 -71
  221. package/src/date-picker/date-picker.ts +0 -185
  222. package/src/date-picker/index.ts +0 -1
  223. package/src/dialog/_examples/dialog.confirmation.example.ts +0 -30
  224. package/src/dialog/_examples/dialog.default.example.ts +0 -30
  225. package/src/dialog/_examples/dialog.nested.example.ts +0 -86
  226. package/src/dialog/_examples/dialog.scrollable.example.ts +0 -30
  227. package/src/dialog/_examples/dialog.usage.example.ts +0 -57
  228. package/src/dialog/_examples/dialog.with-form.example.ts +0 -48
  229. package/src/dialog/_examples/index.ts +0 -8
  230. package/src/dialog/dialog.css +0 -56
  231. package/src/dialog/dialog.playground.ts +0 -136
  232. package/src/dialog/dialog.ts +0 -82
  233. package/src/dialog/index.ts +0 -1
  234. package/src/divider/_examples/divider.example.ts +0 -27
  235. package/src/divider/_examples/divider.sizes.example.ts +0 -33
  236. package/src/divider/_examples/divider.structural.example.ts +0 -55
  237. package/src/divider/_examples/divider.usage.example.ts +0 -48
  238. package/src/divider/_examples/divider.variants.example.ts +0 -33
  239. package/src/divider/_examples/divider.vertical.example.ts +0 -38
  240. package/src/divider/_examples/divider.with-content.example.ts +0 -38
  241. package/src/divider/_examples/index.ts +0 -9
  242. package/src/divider/divider.css +0 -93
  243. package/src/divider/divider.playground.ts +0 -97
  244. package/src/divider/divider.spec.ts +0 -207
  245. package/src/divider/divider.ts +0 -220
  246. package/src/divider/index.ts +0 -1
  247. package/src/drawer/_examples/drawer.example.ts +0 -30
  248. package/src/drawer/_examples/drawer.modal-vs-non-modal.example.ts +0 -27
  249. package/src/drawer/_examples/drawer.scrollable.example.ts +0 -30
  250. package/src/drawer/_examples/drawer.sides.example.ts +0 -32
  251. package/src/drawer/_examples/drawer.usage.example.ts +0 -56
  252. package/src/drawer/_examples/drawer.with-form.example.ts +0 -48
  253. package/src/drawer/_examples/index.ts +0 -8
  254. package/src/drawer/drawer.css +0 -130
  255. package/src/drawer/drawer.playground.ts +0 -107
  256. package/src/drawer/drawer.spec.ts +0 -216
  257. package/src/drawer/drawer.ts +0 -85
  258. package/src/drawer/index.ts +0 -1
  259. package/src/dropdown-menu/_examples/dropdown-menu.disabled.example.ts +0 -19
  260. package/src/dropdown-menu/_examples/dropdown-menu.example.ts +0 -20
  261. package/src/dropdown-menu/_examples/dropdown-menu.shortcuts.example.ts +0 -31
  262. package/src/dropdown-menu/_examples/dropdown-menu.sides.example.ts +0 -18
  263. package/src/dropdown-menu/_examples/dropdown-menu.usage.example.ts +0 -56
  264. package/src/dropdown-menu/_examples/dropdown-menu.with-icons.example.ts +0 -31
  265. package/src/dropdown-menu/_examples/dropdown-menu.with-separator.example.ts +0 -41
  266. package/src/dropdown-menu/_examples/index.ts +0 -9
  267. package/src/dropdown-menu/dropdown-menu.css +0 -108
  268. package/src/dropdown-menu/dropdown-menu.playground.ts +0 -109
  269. package/src/dropdown-menu/dropdown-menu.spec.ts +0 -5
  270. package/src/dropdown-menu/dropdown-menu.ts +0 -128
  271. package/src/dropdown-menu/index.ts +0 -1
  272. package/src/empty-state/_examples/empty-state.error.example.ts +0 -63
  273. package/src/empty-state/_examples/empty-state.example.ts +0 -59
  274. package/src/empty-state/_examples/empty-state.search.example.ts +0 -82
  275. package/src/empty-state/_examples/empty-state.sizes.example.ts +0 -76
  276. package/src/empty-state/_examples/empty-state.usage.example.ts +0 -66
  277. package/src/empty-state/_examples/empty-state.with-actions.example.ts +0 -68
  278. package/src/empty-state/_examples/index.ts +0 -8
  279. package/src/empty-state/empty-state.css +0 -114
  280. package/src/empty-state/empty-state.playground.ts +0 -87
  281. package/src/empty-state/empty-state.spec.ts +0 -211
  282. package/src/empty-state/empty-state.ts +0 -276
  283. package/src/empty-state/index.ts +0 -1
  284. package/src/example-components.ts +0 -396
  285. package/src/field/_examples/field.disabled.example.ts +0 -49
  286. package/src/field/_examples/field.example.ts +0 -51
  287. package/src/field/_examples/field.required.example.ts +0 -46
  288. package/src/field/_examples/field.with-error.example.ts +0 -73
  289. package/src/field/_examples/field.with-prefix-suffix.example.ts +0 -63
  290. package/src/field/_examples/index.ts +0 -7
  291. package/src/field/field.css +0 -138
  292. package/src/field/field.playground.ts +0 -108
  293. package/src/field/field.spec.ts +0 -132
  294. package/src/field/field.ts +0 -232
  295. package/src/field/field.usage.example.ts +0 -63
  296. package/src/field/index.ts +0 -7
  297. package/src/file-upload/_examples/file-upload.dropzone.example.ts +0 -32
  298. package/src/file-upload/_examples/file-upload.example.ts +0 -29
  299. package/src/file-upload/_examples/file-upload.image-preview.example.ts +0 -31
  300. package/src/file-upload/_examples/file-upload.multiple.example.ts +0 -23
  301. package/src/file-upload/_examples/file-upload.with-progress.example.ts +0 -59
  302. package/src/file-upload/_examples/index.ts +0 -7
  303. package/src/file-upload/file-upload.css +0 -207
  304. package/src/file-upload/file-upload.playground.ts +0 -84
  305. package/src/file-upload/file-upload.spec.ts +0 -94
  306. package/src/file-upload/file-upload.ts +0 -301
  307. package/src/file-upload/file-upload.usage.example.ts +0 -45
  308. package/src/file-upload/index.ts +0 -1
  309. package/src/form/_examples/form.async-submit.example.ts +0 -72
  310. package/src/form/_examples/form.compound.example.ts +0 -93
  311. package/src/form/_examples/form.example.ts +0 -70
  312. package/src/form/_examples/form.validation.example.ts +0 -67
  313. package/src/form/_examples/index.ts +0 -6
  314. package/src/form/form.css +0 -63
  315. package/src/form/form.playground.ts +0 -145
  316. package/src/form/form.spec.ts +0 -96
  317. package/src/form/form.ts +0 -216
  318. package/src/form/form.usage.example.ts +0 -63
  319. package/src/form/index.ts +0 -5
  320. package/src/icon/_examples/icon.gallery.example.ts +0 -199
  321. package/src/icon/_examples/icon.usage.example.ts +0 -46
  322. package/src/icon/_examples/index.ts +0 -4
  323. package/src/icon/icon.playground.ts +0 -63
  324. package/src/icon/index.ts +0 -5
  325. package/src/icon/lucide/icon-names.generated.ts +0 -1708
  326. package/src/icon/lucide/icon-names.ts +0 -18
  327. package/src/icon/lucide/index.ts +0 -2
  328. package/src/icon/lucide/provide-lucide-icons.ts +0 -96
  329. package/src/input/_examples/index.ts +0 -4
  330. package/src/input/_examples/input.color.example.ts +0 -33
  331. package/src/input/_examples/input.example.ts +0 -22
  332. package/src/input/index.ts +0 -1
  333. package/src/input/input.css +0 -70
  334. package/src/input/input.playground.ts +0 -79
  335. package/src/input/input.spec.ts +0 -98
  336. package/src/input/input.ts +0 -158
  337. package/src/input/input.usage.example.ts +0 -40
  338. package/src/input-group/_examples/index.ts +0 -7
  339. package/src/input-group/_examples/input-group.button.example.ts +0 -43
  340. package/src/input-group/_examples/input-group.example.ts +0 -39
  341. package/src/input-group/_examples/input-group.icon.example.ts +0 -49
  342. package/src/input-group/_examples/input-group.url.example.ts +0 -36
  343. package/src/input-group/_examples/input-group.variants.example.ts +0 -39
  344. package/src/input-group/index.ts +0 -1
  345. package/src/input-group/input-group.css +0 -125
  346. package/src/input-group/input-group.playground.ts +0 -90
  347. package/src/input-group/input-group.ts +0 -142
  348. package/src/input-group/input-group.usage.example.ts +0 -47
  349. package/src/input-mask/_examples/index.ts +0 -8
  350. package/src/input-mask/_examples/input-mask.credit-card.example.ts +0 -90
  351. package/src/input-mask/_examples/input-mask.custom-tokens.example.ts +0 -87
  352. package/src/input-mask/_examples/input-mask.date.example.ts +0 -61
  353. package/src/input-mask/_examples/input-mask.example.ts +0 -61
  354. package/src/input-mask/_examples/input-mask.usage.example.ts +0 -44
  355. package/src/input-mask/_examples/input-mask.validation.example.ts +0 -80
  356. package/src/input-mask/index.ts +0 -9
  357. package/src/input-mask/input-mask.css +0 -39
  358. package/src/input-mask/input-mask.playground.ts +0 -79
  359. package/src/input-mask/input-mask.ts +0 -130
  360. package/src/input-otp/_examples/index.ts +0 -8
  361. package/src/input-otp/_examples/input-otp.autosubmit.example.ts +0 -71
  362. package/src/input-otp/_examples/input-otp.example.ts +0 -47
  363. package/src/input-otp/_examples/input-otp.lengths.example.ts +0 -67
  364. package/src/input-otp/_examples/input-otp.masked.example.ts +0 -46
  365. package/src/input-otp/_examples/input-otp.reactive.example.ts +0 -58
  366. package/src/input-otp/_examples/input-otp.separator.example.ts +0 -49
  367. package/src/input-otp/index.ts +0 -1
  368. package/src/input-otp/input-otp.css +0 -87
  369. package/src/input-otp/input-otp.playground.ts +0 -107
  370. package/src/input-otp/input-otp.ts +0 -244
  371. package/src/input-otp/input-otp.usage.example.ts +0 -45
  372. package/src/kbd/_examples/index.ts +0 -6
  373. package/src/kbd/_examples/kbd.combo.example.ts +0 -24
  374. package/src/kbd/_examples/kbd.example.ts +0 -22
  375. package/src/kbd/_examples/kbd.in-tooltip.example.ts +0 -43
  376. package/src/kbd/_examples/kbd.sizes.example.ts +0 -31
  377. package/src/kbd/index.ts +0 -1
  378. package/src/kbd/kbd.css +0 -67
  379. package/src/kbd/kbd.playground.ts +0 -51
  380. package/src/kbd/kbd.spec.ts +0 -123
  381. package/src/kbd/kbd.ts +0 -123
  382. package/src/kbd/kbd.usage.example.ts +0 -38
  383. package/src/link/_examples/index.ts +0 -8
  384. package/src/link/_examples/link.disabled.example.ts +0 -23
  385. package/src/link/_examples/link.example.ts +0 -26
  386. package/src/link/_examples/link.external.example.ts +0 -33
  387. package/src/link/_examples/link.in-prose.example.ts +0 -36
  388. package/src/link/_examples/link.sizes.example.ts +0 -28
  389. package/src/link/_examples/link.variants.example.ts +0 -25
  390. package/src/link/index.ts +0 -1
  391. package/src/link/link.css +0 -104
  392. package/src/link/link.playground.ts +0 -98
  393. package/src/link/link.spec.ts +0 -146
  394. package/src/link/link.ts +0 -133
  395. package/src/link/link.usage.example.ts +0 -37
  396. package/src/list/_examples/index.ts +0 -7
  397. package/src/list/_examples/list.divided.example.ts +0 -32
  398. package/src/list/_examples/list.example.ts +0 -31
  399. package/src/list/_examples/list.interactive.example.ts +0 -51
  400. package/src/list/_examples/list.nav.example.ts +0 -44
  401. package/src/list/_examples/list.with-icons.example.ts +0 -97
  402. package/src/list/index.ts +0 -1
  403. package/src/list/list.css +0 -166
  404. package/src/list/list.playground.ts +0 -90
  405. package/src/list/list.spec.ts +0 -121
  406. package/src/list/list.ts +0 -227
  407. package/src/list/list.usage.example.ts +0 -45
  408. package/src/menubar/_examples/index.ts +0 -6
  409. package/src/menubar/_examples/menubar.disabled-item.example.ts +0 -23
  410. package/src/menubar/_examples/menubar.example.ts +0 -22
  411. package/src/menubar/_examples/menubar.with-shortcuts.example.ts +0 -33
  412. package/src/menubar/_examples/menubar.with-submenu.example.ts +0 -76
  413. package/src/menubar/index.ts +0 -1
  414. package/src/menubar/menubar.css +0 -62
  415. package/src/menubar/menubar.playground.ts +0 -96
  416. package/src/menubar/menubar.ts +0 -160
  417. package/src/menubar/menubar.usage.example.ts +0 -33
  418. package/src/number-input/_examples/index.ts +0 -7
  419. package/src/number-input/_examples/number-input.currency.example.ts +0 -35
  420. package/src/number-input/_examples/number-input.decimal.example.ts +0 -34
  421. package/src/number-input/_examples/number-input.example.ts +0 -24
  422. package/src/number-input/_examples/number-input.min-max.example.ts +0 -33
  423. package/src/number-input/_examples/number-input.with-stepper.example.ts +0 -45
  424. package/src/number-input/index.ts +0 -1
  425. package/src/number-input/number-input.css +0 -115
  426. package/src/number-input/number-input.playground.ts +0 -92
  427. package/src/number-input/number-input.spec.ts +0 -102
  428. package/src/number-input/number-input.ts +0 -212
  429. package/src/number-input/number-input.usage.example.ts +0 -73
  430. package/src/overlay/overlay.css +0 -32
  431. package/src/overlay-badge/_examples/index.ts +0 -7
  432. package/src/overlay-badge/_examples/overlay-badge.described.example.ts +0 -36
  433. package/src/overlay-badge/_examples/overlay-badge.dot.example.ts +0 -28
  434. package/src/overlay-badge/_examples/overlay-badge.example.ts +0 -34
  435. package/src/overlay-badge/_examples/overlay-badge.on-avatar.example.ts +0 -38
  436. package/src/overlay-badge/_examples/overlay-badge.positions.example.ts +0 -39
  437. package/src/overlay-badge/index.ts +0 -1
  438. package/src/overlay-badge/overlay-badge.css +0 -118
  439. package/src/overlay-badge/overlay-badge.playground.ts +0 -92
  440. package/src/overlay-badge/overlay-badge.spec.ts +0 -174
  441. package/src/overlay-badge/overlay-badge.ts +0 -232
  442. package/src/overlay-badge/overlay-badge.usage.example.ts +0 -44
  443. package/src/pagination/_examples/index.ts +0 -7
  444. package/src/pagination/_examples/pagination.boundaries.example.ts +0 -56
  445. package/src/pagination/_examples/pagination.compact.example.ts +0 -42
  446. package/src/pagination/_examples/pagination.example.ts +0 -55
  447. package/src/pagination/_examples/pagination.large.example.ts +0 -54
  448. package/src/pagination/_examples/pagination.with-info.example.ts +0 -49
  449. package/src/pagination/index.ts +0 -1
  450. package/src/pagination/pagination.css +0 -146
  451. package/src/pagination/pagination.playground.ts +0 -107
  452. package/src/pagination/pagination.spec.ts +0 -202
  453. package/src/pagination/pagination.ts +0 -432
  454. package/src/pagination/pagination.usage.example.ts +0 -50
  455. package/src/password-input/_examples/index.ts +0 -6
  456. package/src/password-input/_examples/password-input.example.ts +0 -24
  457. package/src/password-input/_examples/password-input.strength.example.ts +0 -45
  458. package/src/password-input/_examples/password-input.toggle.example.ts +0 -43
  459. package/src/password-input/_examples/password-input.with-rules.example.ts +0 -78
  460. package/src/password-input/index.ts +0 -1
  461. package/src/password-input/password-input.css +0 -155
  462. package/src/password-input/password-input.playground.ts +0 -81
  463. package/src/password-input/password-input.spec.ts +0 -129
  464. package/src/password-input/password-input.ts +0 -254
  465. package/src/password-input/password-input.usage.example.ts +0 -55
  466. package/src/playground-types.ts +0 -47
  467. package/src/popover/_examples/index.ts +0 -7
  468. package/src/popover/_examples/popover.cancellable.example.ts +0 -20
  469. package/src/popover/_examples/popover.example.ts +0 -20
  470. package/src/popover/_examples/popover.modal.example.ts +0 -22
  471. package/src/popover/_examples/popover.sides.example.ts +0 -37
  472. package/src/popover/_examples/popover.with-form.example.ts +0 -38
  473. package/src/popover/index.ts +0 -1
  474. package/src/popover/popover.css +0 -71
  475. package/src/popover/popover.playground.ts +0 -86
  476. package/src/popover/popover.spec.ts +0 -5
  477. package/src/popover/popover.ts +0 -94
  478. package/src/popover/popover.usage.example.ts +0 -48
  479. package/src/progress-bar/_examples/index.ts +0 -7
  480. package/src/progress-bar/_examples/progress-bar.example.ts +0 -22
  481. package/src/progress-bar/_examples/progress-bar.indeterminate.example.ts +0 -23
  482. package/src/progress-bar/_examples/progress-bar.sizes.example.ts +0 -29
  483. package/src/progress-bar/_examples/progress-bar.variants.example.ts +0 -30
  484. package/src/progress-bar/_examples/progress-bar.with-label.example.ts +0 -30
  485. package/src/progress-bar/index.ts +0 -1
  486. package/src/progress-bar/progress-bar.css +0 -113
  487. package/src/progress-bar/progress-bar.playground.ts +0 -87
  488. package/src/progress-bar/progress-bar.spec.ts +0 -233
  489. package/src/progress-bar/progress-bar.ts +0 -155
  490. package/src/progress-bar/progress-bar.usage.example.ts +0 -52
  491. package/src/public-api.ts +0 -61
  492. package/src/radio/_examples/index.ts +0 -6
  493. package/src/radio/_examples/radio.default.example.ts +0 -26
  494. package/src/radio/_examples/radio.disabled.example.ts +0 -26
  495. package/src/radio/_examples/radio.group.example.ts +0 -27
  496. package/src/radio/_examples/radio.inline.example.ts +0 -26
  497. package/src/radio/index.ts +0 -1
  498. package/src/radio/radio.css +0 -58
  499. package/src/radio/radio.playground.ts +0 -90
  500. package/src/radio/radio.ts +0 -143
  501. package/src/radio/radio.usage.example.ts +0 -54
  502. package/src/select/_examples/index.ts +0 -6
  503. package/src/select/_examples/select.default.example.ts +0 -26
  504. package/src/select/_examples/select.disabled.example.ts +0 -24
  505. package/src/select/_examples/select.grouped.example.ts +0 -37
  506. package/src/select/_examples/select.placeholder.example.ts +0 -26
  507. package/src/select/index.ts +0 -1
  508. package/src/select/select.css +0 -65
  509. package/src/select/select.playground.ts +0 -81
  510. package/src/select/select.ts +0 -176
  511. package/src/select/select.usage.example.ts +0 -64
  512. package/src/skeleton/_examples/index.ts +0 -6
  513. package/src/skeleton/_examples/skeleton.animations.example.ts +0 -52
  514. package/src/skeleton/_examples/skeleton.card.example.ts +0 -68
  515. package/src/skeleton/_examples/skeleton.example.ts +0 -24
  516. package/src/skeleton/_examples/skeleton.shapes.example.ts +0 -55
  517. package/src/skeleton/index.ts +0 -1
  518. package/src/skeleton/skeleton.css +0 -111
  519. package/src/skeleton/skeleton.playground.ts +0 -80
  520. package/src/skeleton/skeleton.spec.ts +0 -126
  521. package/src/skeleton/skeleton.ts +0 -155
  522. package/src/skeleton/skeleton.usage.example.ts +0 -49
  523. package/src/slider/_examples/index.ts +0 -7
  524. package/src/slider/_examples/slider.example.ts +0 -41
  525. package/src/slider/_examples/slider.formatted.example.ts +0 -53
  526. package/src/slider/_examples/slider.range.example.ts +0 -48
  527. package/src/slider/_examples/slider.vertical.example.ts +0 -48
  528. package/src/slider/_examples/slider.with-marks.example.ts +0 -46
  529. package/src/slider/index.ts +0 -1
  530. package/src/slider/slider.css +0 -172
  531. package/src/slider/slider.playground.ts +0 -88
  532. package/src/slider/slider.spec.ts +0 -139
  533. package/src/slider/slider.ts +0 -246
  534. package/src/slider/slider.usage.example.ts +0 -68
  535. package/src/speed-dial/_examples/index.ts +0 -7
  536. package/src/speed-dial/_examples/speed-dial.directions.example.ts +0 -85
  537. package/src/speed-dial/_examples/speed-dial.disabled.example.ts +0 -71
  538. package/src/speed-dial/_examples/speed-dial.example.ts +0 -48
  539. package/src/speed-dial/_examples/speed-dial.usage.example.ts +0 -59
  540. package/src/speed-dial/_examples/speed-dial.with-tooltips.example.ts +0 -65
  541. package/src/speed-dial/index.ts +0 -1
  542. package/src/speed-dial/speed-dial.css +0 -137
  543. package/src/speed-dial/speed-dial.playground.ts +0 -137
  544. package/src/speed-dial/speed-dial.spec.ts +0 -191
  545. package/src/speed-dial/speed-dial.ts +0 -257
  546. package/src/spinner/_examples/index.ts +0 -8
  547. package/src/spinner/_examples/spinner.animations.example.ts +0 -54
  548. package/src/spinner/_examples/spinner.example.ts +0 -26
  549. package/src/spinner/_examples/spinner.in-button.example.ts +0 -51
  550. package/src/spinner/_examples/spinner.sizes.example.ts +0 -31
  551. package/src/spinner/_examples/spinner.usage.example.ts +0 -45
  552. package/src/spinner/_examples/spinner.variants.example.ts +0 -34
  553. package/src/spinner/index.ts +0 -1
  554. package/src/spinner/spinner.css +0 -161
  555. package/src/spinner/spinner.playground.ts +0 -68
  556. package/src/spinner/spinner.spec.ts +0 -184
  557. package/src/spinner/spinner.ts +0 -185
  558. package/src/stepper/_examples/index.ts +0 -8
  559. package/src/stepper/_examples/stepper.example.ts +0 -62
  560. package/src/stepper/_examples/stepper.non-linear.example.ts +0 -63
  561. package/src/stepper/_examples/stepper.optional-step.example.ts +0 -62
  562. package/src/stepper/_examples/stepper.usage.example.ts +0 -73
  563. package/src/stepper/_examples/stepper.vertical.example.ts +0 -66
  564. package/src/stepper/_examples/stepper.with-error.example.ts +0 -63
  565. package/src/stepper/index.ts +0 -1
  566. package/src/stepper/stepper.css +0 -147
  567. package/src/stepper/stepper.playground.ts +0 -88
  568. package/src/stepper/stepper.spec.ts +0 -200
  569. package/src/stepper/stepper.ts +0 -242
  570. package/src/table/_examples/index.ts +0 -23
  571. package/src/table/_examples/table.column-pinning.example.ts +0 -55
  572. package/src/table/_examples/table.column-resize.example.ts +0 -49
  573. package/src/table/_examples/table.column-visibility.example.ts +0 -52
  574. package/src/table/_examples/table.density.example.ts +0 -71
  575. package/src/table/_examples/table.editable.example.ts +0 -85
  576. package/src/table/_examples/table.empty-and-error.example.ts +0 -112
  577. package/src/table/_examples/table.example.ts +0 -45
  578. package/src/table/_examples/table.export.example.ts +0 -82
  579. package/src/table/_examples/table.filterable.example.ts +0 -67
  580. package/src/table/_examples/table.grouping.example.ts +0 -63
  581. package/src/table/_examples/table.keyboard.example.ts +0 -115
  582. package/src/table/_examples/table.master-detail.example.ts +0 -102
  583. package/src/table/_examples/table.persistence.example.ts +0 -85
  584. package/src/table/_examples/table.playground.ts +0 -154
  585. package/src/table/_examples/table.row-pinning.example.ts +0 -71
  586. package/src/table/_examples/table.selection.example.ts +0 -67
  587. package/src/table/_examples/table.server-mode.example.ts +0 -120
  588. package/src/table/_examples/table.sortable.example.ts +0 -49
  589. package/src/table/_examples/table.theming.example.ts +0 -64
  590. package/src/table/_examples/table.usage.example.ts +0 -90
  591. package/src/table/_examples/table.virtualized.example.ts +0 -122
  592. package/src/table/index.ts +0 -11
  593. package/src/table/table-cell-editor-outlet.ts +0 -111
  594. package/src/table/table-editors/boolean-editor.ts +0 -71
  595. package/src/table/table-editors/date-editor.ts +0 -117
  596. package/src/table/table-editors/editors.spec.ts +0 -147
  597. package/src/table/table-editors/index.ts +0 -41
  598. package/src/table/table-editors/number-editor.ts +0 -89
  599. package/src/table/table-editors/select-editor.ts +0 -107
  600. package/src/table/table-editors/text-editor.ts +0 -82
  601. package/src/table/table-export.spec.ts +0 -33
  602. package/src/table/table-export.ts +0 -53
  603. package/src/table/table-filter-outlet.ts +0 -137
  604. package/src/table/table-filters/date-filter.ts +0 -122
  605. package/src/table/table-filters/filters.css +0 -53
  606. package/src/table/table-filters/filters.spec.ts +0 -277
  607. package/src/table/table-filters/index.ts +0 -11
  608. package/src/table/table-filters/number-filter.ts +0 -232
  609. package/src/table/table-filters/select-filter.ts +0 -129
  610. package/src/table/table-filters/text-filter.ts +0 -110
  611. package/src/table/table-pagination.spec.ts +0 -118
  612. package/src/table/table-pagination.ts +0 -191
  613. package/src/table/table-side-panel.spec.ts +0 -170
  614. package/src/table/table-side-panel.ts +0 -263
  615. package/src/table/table-status-bar.spec.ts +0 -78
  616. package/src/table/table-status-bar.ts +0 -70
  617. package/src/table/table-toolbar.spec.ts +0 -180
  618. package/src/table/table-toolbar.ts +0 -244
  619. package/src/table/table-virtual.spec.ts +0 -103
  620. package/src/table/table-virtual.ts +0 -180
  621. package/src/table/table.css +0 -468
  622. package/src/table/table.spec.ts +0 -175
  623. package/src/table/table.ts +0 -1009
  624. package/src/tabs/_examples/index.ts +0 -8
  625. package/src/tabs/_examples/tabs.controlled.example.ts +0 -59
  626. package/src/tabs/_examples/tabs.disabled.example.ts +0 -34
  627. package/src/tabs/_examples/tabs.example.ts +0 -34
  628. package/src/tabs/_examples/tabs.manual-activation.example.ts +0 -34
  629. package/src/tabs/_examples/tabs.usage.example.ts +0 -43
  630. package/src/tabs/_examples/tabs.vertical.example.ts +0 -33
  631. package/src/tabs/index.ts +0 -1
  632. package/src/tabs/tabs.css +0 -80
  633. package/src/tabs/tabs.playground.ts +0 -88
  634. package/src/tabs/tabs.spec.ts +0 -135
  635. package/src/tabs/tabs.ts +0 -204
  636. package/src/tag/_examples/index.ts +0 -9
  637. package/src/tag/_examples/tag.example.ts +0 -22
  638. package/src/tag/_examples/tag.list.example.ts +0 -38
  639. package/src/tag/_examples/tag.removable.example.ts +0 -39
  640. package/src/tag/_examples/tag.selectable.example.ts +0 -33
  641. package/src/tag/_examples/tag.sizes.example.ts +0 -25
  642. package/src/tag/_examples/tag.usage.example.ts +0 -62
  643. package/src/tag/_examples/tag.variants.example.ts +0 -29
  644. package/src/tag/index.ts +0 -1
  645. package/src/tag/tag.css +0 -167
  646. package/src/tag/tag.playground.ts +0 -63
  647. package/src/tag/tag.spec.ts +0 -153
  648. package/src/tag/tag.ts +0 -186
  649. package/src/test-setup.ts +0 -5
  650. package/src/textarea/_examples/index.ts +0 -8
  651. package/src/textarea/_examples/textarea.autoresize.example.ts +0 -37
  652. package/src/textarea/_examples/textarea.character-count.example.ts +0 -34
  653. package/src/textarea/_examples/textarea.example.ts +0 -22
  654. package/src/textarea/_examples/textarea.no-resize.example.ts +0 -28
  655. package/src/textarea/_examples/textarea.usage.example.ts +0 -50
  656. package/src/textarea/_examples/textarea.with-field.example.ts +0 -66
  657. package/src/textarea/index.ts +0 -1
  658. package/src/textarea/textarea.css +0 -117
  659. package/src/textarea/textarea.playground.ts +0 -70
  660. package/src/textarea/textarea.spec.ts +0 -161
  661. package/src/textarea/textarea.ts +0 -339
  662. package/src/time-picker/_examples/index.ts +0 -8
  663. package/src/time-picker/_examples/time-picker.12-hour.example.ts +0 -24
  664. package/src/time-picker/_examples/time-picker.example.ts +0 -24
  665. package/src/time-picker/_examples/time-picker.formatted.example.ts +0 -32
  666. package/src/time-picker/_examples/time-picker.range.example.ts +0 -54
  667. package/src/time-picker/_examples/time-picker.usage.example.ts +0 -53
  668. package/src/time-picker/_examples/time-picker.with-seconds.example.ts +0 -24
  669. package/src/time-picker/index.ts +0 -1
  670. package/src/time-picker/time-picker.css +0 -126
  671. package/src/time-picker/time-picker.playground.ts +0 -72
  672. package/src/time-picker/time-picker.spec.ts +0 -77
  673. package/src/time-picker/time-picker.ts +0 -207
  674. package/src/toast/_examples/index.ts +0 -7
  675. package/src/toast/_examples/toast.default.example.ts +0 -37
  676. package/src/toast/_examples/toast.dismissible.example.ts +0 -38
  677. package/src/toast/_examples/toast.usage.example.ts +0 -57
  678. package/src/toast/_examples/toast.variants.example.ts +0 -43
  679. package/src/toast/_examples/toast.with-action.example.ts +0 -46
  680. package/src/toast/index.ts +0 -1
  681. package/src/toast/toast.css +0 -115
  682. package/src/toast/toast.playground.ts +0 -61
  683. package/src/toast/toast.ts +0 -168
  684. package/src/toggle/_examples/index.ts +0 -7
  685. package/src/toggle/_examples/toggle.checked.example.ts +0 -20
  686. package/src/toggle/_examples/toggle.default.example.ts +0 -20
  687. package/src/toggle/_examples/toggle.disabled.example.ts +0 -26
  688. package/src/toggle/_examples/toggle.usage.example.ts +0 -51
  689. package/src/toggle/_examples/toggle.with-label.example.ts +0 -30
  690. package/src/toggle/index.ts +0 -1
  691. package/src/toggle/toggle.css +0 -123
  692. package/src/toggle/toggle.playground.ts +0 -65
  693. package/src/toggle/toggle.ts +0 -113
  694. package/src/tooltip/_examples/index.ts +0 -9
  695. package/src/tooltip/_examples/tooltip.delays.example.ts +0 -16
  696. package/src/tooltip/_examples/tooltip.disabled.example.ts +0 -16
  697. package/src/tooltip/_examples/tooltip.example.ts +0 -16
  698. package/src/tooltip/_examples/tooltip.group.example.ts +0 -20
  699. package/src/tooltip/_examples/tooltip.rich.example.ts +0 -19
  700. package/src/tooltip/_examples/tooltip.sides.example.ts +0 -18
  701. package/src/tooltip/_examples/tooltip.usage.example.ts +0 -50
  702. package/src/tooltip/index.ts +0 -1
  703. package/src/tooltip/tooltip.css +0 -61
  704. package/src/tooltip/tooltip.playground.ts +0 -79
  705. package/src/tooltip/tooltip.spec.ts +0 -5
  706. package/src/tooltip/tooltip.ts +0 -102
  707. package/src/tree-select/_examples/index.ts +0 -8
  708. package/src/tree-select/_examples/tree-select.disabled.example.ts +0 -106
  709. package/src/tree-select/_examples/tree-select.example.ts +0 -65
  710. package/src/tree-select/_examples/tree-select.expanded.example.ts +0 -72
  711. package/src/tree-select/_examples/tree-select.field.example.ts +0 -77
  712. package/src/tree-select/_examples/tree-select.multi.example.ts +0 -73
  713. package/src/tree-select/_examples/tree-select.usage.example.ts +0 -85
  714. package/src/tree-select/index.ts +0 -1
  715. package/src/tree-select/tree-select.css +0 -220
  716. package/src/tree-select/tree-select.playground.ts +0 -83
  717. package/src/tree-select/tree-select.ts +0 -348
  718. package/src/typography/_examples/index.ts +0 -9
  719. package/src/typography/_examples/typography.blockquote.example.ts +0 -34
  720. package/src/typography/_examples/typography.code.example.ts +0 -32
  721. package/src/typography/_examples/typography.example.ts +0 -42
  722. package/src/typography/_examples/typography.lead.example.ts +0 -37
  723. package/src/typography/_examples/typography.muted.example.ts +0 -27
  724. package/src/typography/_examples/typography.truncate.example.ts +0 -41
  725. package/src/typography/_examples/typography.usage.example.ts +0 -44
  726. package/src/typography/index.ts +0 -8
  727. package/src/typography/typography.playground.ts +0 -101
  728. package/src/typography/typography.spec.ts +0 -70
  729. package/src/typography/typography.ts +0 -105
  730. package/tsconfig.lib.json +0 -25
  731. package/tsconfig.lib.prod.json +0 -17
  732. package/tsconfig.spec.json +0 -16
  733. package/vite.config.ts +0 -33
@@ -1,244 +0,0 @@
1
- import {
2
- AfterViewInit,
3
- ChangeDetectionStrategy,
4
- Component,
5
- ViewEncapsulation,
6
- booleanAttribute,
7
- computed,
8
- forwardRef,
9
- input,
10
- output,
11
- viewChild,
12
- } from '@angular/core';
13
- import {
14
- ControlValueAccessor,
15
- NG_VALUE_ACCESSOR,
16
- } from '@angular/forms';
17
- import { KjInputOtp, KjInputOtpCell } from '@kouji-ui/core';
18
-
19
- /**
20
- * Styled wrapper around the headless `KjInputOtp` + `KjInputOtpCell`
21
- * directive family.
22
- *
23
- * Renders N square cells in a flex row. Supports `[(ngModel)]` and
24
- * `[formControl]` / `[formControlName]` out of the box — the full
25
- * concatenated code string is the form value. Use `[kjSeparatorAfter]="[2]"`
26
- * to render a visual dash between cell groups (e.g. `123–456`); the
27
- * separator is purely decorative and never included in the form value.
28
- *
29
- * @doc-example Default
30
- * 6-digit OTP with `[(ngModel)]` two-way binding — anchors the chrome.
31
- * @doc-file input-otp.example.ts
32
- * @doc-example Usage
33
- * Common OTP shapes — reactive form, length 4, masked digits, and a visual
34
- * separator — assembled as a copy-paste starting point.
35
- * @doc-file input-otp.usage.example.ts
36
- * @doc-example Reactive form
37
- * Wires up `[formControl]` with a `minLength` validator + a submit handler.
38
- * @doc-file input-otp.reactive.example.ts
39
- * @doc-example Lengths
40
- * Common lengths (4 / 6 / 8) side-by-side.
41
- * @doc-file input-otp.lengths.example.ts
42
- * @doc-example Masked
43
- * `[kjMask]="true"` flips cells to `type="password"` for sensitive codes.
44
- * @doc-file input-otp.masked.example.ts
45
- * @doc-example With separator
46
- * `[kjSeparatorAfter]="[2]"` renders a decorative dash between cell groups.
47
- * @doc-file input-otp.separator.example.ts
48
- * @doc-example Auto-submit
49
- * Emits `(kjComplete)` once the code is fully entered — handy for short codes.
50
- * @doc-file input-otp.autosubmit.example.ts
51
- *
52
- * @doc-keyboard
53
- * Digits|Letters — Type to populate the focused cell, advance to the next
54
- * Backspace — Clears the focused cell and moves focus back
55
- * Arrow left|right — Move focus across cells without altering the value
56
- * Home|End — Jump to the first / last cell
57
- * Cmd|Ctrl + V — Paste a code; characters distribute across remaining cells
58
- *
59
- * @doc-aria
60
- * role="group" — On the OTP container; labelled by [kjAriaLabel] or the surrounding kj-field
61
- * aria-label — Bound from [kjAriaLabel] when no kj-field-label is present
62
- * aria-invalid — Reflected on the group when [kjInvalid] is true (touched-gated)
63
- * aria-disabled — Reflected on the group when [kjDisabled] is true
64
- * aria-readonly — Reflected on the group when [kjReadonly] is true
65
- * inputmode — Set on each cell to "numeric" for digits charset
66
- *
67
- * @doc-touch
68
- * `--kj-otp-cell-size` defaults to 44 px so each cell already meets WCAG
69
- * 2.5.5. The visual separator is `aria-hidden` and never receives focus.
70
- *
71
- * @doc-a11y
72
- * `KjInputOtp` owns paste distribution, charset filtering, and the live
73
- * announcement on `(kjComplete)`. The widget composes `KjFormControl` (CVA)
74
- * so `[(ngModel)]` and `[formControl]` work out of the box — the full
75
- * concatenated code is the form value; the decorative separator is never
76
- * included.
77
- *
78
- * @doc-related input,input-mask,field,form
79
- *
80
- * @doc-css-var
81
- * --kj-otp-cell-size — Square cell width/height. Default 44px (WCAG 2.5.5 touch target).
82
- * --kj-otp-cell-gap — Gap between adjacent cells.
83
- * --kj-otp-cell-bg — Cell background fill.
84
- * --kj-otp-cell-fg — Cell foreground (digit) color.
85
- * --kj-otp-cell-border-color — Cell border color. Focus and invalid states retarget this.
86
- * --kj-otp-cell-border-width — Cell border thickness. Inherits --kj-border.
87
- * --kj-otp-cell-radius — Cell corner radius. Inherits --kj-radius-field.
88
- * --kj-otp-cell-font — Font family inside cells.
89
- * --kj-otp-cell-font-size — Font size inside cells.
90
- *
91
- * @doc-category Library/Data input
92
- * @doc
93
- * @doc-name input-otp
94
- * @doc-description Themed OTP input with N cells, paste distribution, auto-submit, masking, and visual separators.
95
- * @doc-is-main
96
- */
97
- @Component({
98
- selector: 'kj-input-otp',
99
- standalone: true,
100
- imports: [KjInputOtp, KjInputOtpCell],
101
- providers: [
102
- {
103
- provide: NG_VALUE_ACCESSOR,
104
- useExisting: forwardRef(() => KjInputOtpComponent),
105
- multi: true,
106
- },
107
- ],
108
- template: `
109
- <div
110
- kjInputOtp
111
- class="kj-input-otp__group"
112
- [kjLength]="kjLength()"
113
- [kjCharSet]="kjCharSet()"
114
- [kjMask]="kjMask()"
115
- [kjAutoSubmit]="kjAutoSubmit()"
116
- [kjInvalid]="kjInvalid()"
117
- [kjDisabled]="kjDisabled()"
118
- [kjReadonly]="kjReadonly()"
119
- [kjAriaLabel]="kjAriaLabel()"
120
- (kjComplete)="kjComplete.emit($event)"
121
- (kjPasted)="kjPasted.emit($event)"
122
- >
123
- @for (i of _indices(); track i) {
124
- <input
125
- kjInputOtpCell
126
- class="kj-input-otp__cell"
127
- [kjIndex]="i"
128
- />
129
- @if (kjSeparatorAfter().includes(i)) {
130
- <span class="kj-input-otp__separator" aria-hidden="true">–</span>
131
- }
132
- }
133
- </div>
134
- `,
135
- styleUrl: './input-otp.css',
136
- encapsulation: ViewEncapsulation.None,
137
- host: { class: 'kj-input-otp' },
138
- changeDetection: ChangeDetectionStrategy.OnPush,
139
- })
140
- export class KjInputOtpComponent implements ControlValueAccessor, AfterViewInit {
141
- // ── Forwarded inputs ─────────────────────────────────────────────────────────
142
-
143
- /** Number of OTP cells. Common values: 4, 6, 8. */
144
- readonly kjLength = input<number>(6);
145
-
146
- /** Character-set restriction. */
147
- readonly kjCharSet = input<'digits' | 'alphanumeric' | RegExp>('digits');
148
-
149
- /** When `true`, cells render as `type="password"`. */
150
- readonly kjMask = input(false, { transform: booleanAttribute });
151
-
152
- /** When `true`, emits `kjComplete` once the code is fully entered. */
153
- readonly kjAutoSubmit = input(false, { transform: booleanAttribute });
154
-
155
- /** Reflects invalid state via `aria-invalid` (touched-gated). */
156
- readonly kjInvalid = input(false, { transform: booleanAttribute });
157
-
158
- /** Disables all cells and the root. */
159
- readonly kjDisabled = input(false, { transform: booleanAttribute });
160
-
161
- /** Sets all cells to `readonly`. */
162
- readonly kjReadonly = input(false, { transform: booleanAttribute });
163
-
164
- /**
165
- * Accessible label for the widget (used when there is no parent `KjFormField`).
166
- */
167
- readonly kjAriaLabel = input<string>('');
168
-
169
- /**
170
- * Indices after which to render a visual separator dash.
171
- * E.g. `[2]` renders `123–456` for a 6-digit code.
172
- * Purely decorative — the separator never appears in the form value.
173
- */
174
- readonly kjSeparatorAfter = input<readonly number[]>([]);
175
-
176
- // ── Outputs ─────────────────────────────────────────────────────────────────
177
-
178
- /** Emitted when the full code is entered. */
179
- readonly kjComplete = output<string>();
180
-
181
- /** Emitted after a paste distributes characters across cells. */
182
- readonly kjPasted = output<string>();
183
-
184
- // ── Internal ─────────────────────────────────────────────────────────────────
185
-
186
- /** The inner `KjInputOtp` directive that owns the CVA logic. */
187
- private readonly _otp = viewChild.required(KjInputOtp);
188
-
189
- /** The array of cell indices `[0, 1, ..., kjLength-1]`. */
190
- readonly _indices = computed(() =>
191
- Array.from({ length: this.kjLength() }, (_, i) => i),
192
- );
193
-
194
- /** Buffered CVA calls made before the view is initialised. */
195
- private _pendingValue: string | null = null;
196
- private _pendingOnChange: ((val: string) => void) | null = null;
197
- private _pendingOnTouched: (() => void) | null = null;
198
- private _pendingDisabled: boolean | null = null;
199
- private _viewReady = false;
200
-
201
- ngAfterViewInit(): void {
202
- this._viewReady = true;
203
- const ctrl = this._otp().formCtrl;
204
- if (this._pendingValue !== null) ctrl.writeValue(this._pendingValue);
205
- if (this._pendingOnChange !== null) ctrl.registerOnChange(this._pendingOnChange as (val: unknown) => void);
206
- if (this._pendingOnTouched !== null) ctrl.registerOnTouched(this._pendingOnTouched);
207
- if (this._pendingDisabled !== null) ctrl.setDisabledState(this._pendingDisabled);
208
- }
209
-
210
- // ── ControlValueAccessor ─────────────────────────────────────────────────────
211
-
212
- writeValue(value: string | null): void {
213
- const v = value ?? '';
214
- if (this._viewReady) {
215
- this._otp().formCtrl.writeValue(v);
216
- } else {
217
- this._pendingValue = v;
218
- }
219
- }
220
-
221
- registerOnChange(fn: (val: string) => void): void {
222
- if (this._viewReady) {
223
- this._otp().formCtrl.registerOnChange(fn as (val: unknown) => void);
224
- } else {
225
- this._pendingOnChange = fn;
226
- }
227
- }
228
-
229
- registerOnTouched(fn: () => void): void {
230
- if (this._viewReady) {
231
- this._otp().formCtrl.registerOnTouched(fn);
232
- } else {
233
- this._pendingOnTouched = fn;
234
- }
235
- }
236
-
237
- setDisabledState(isDisabled: boolean): void {
238
- if (this._viewReady) {
239
- this._otp().formCtrl.setDisabledState(isDisabled);
240
- } else {
241
- this._pendingDisabled = isDisabled;
242
- }
243
- }
244
- }
@@ -1,45 +0,0 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
- import { FormsModule } from '@angular/forms';
3
- import { KjInputOtpComponent } from './input-otp';
4
-
5
- /**
6
- * Common OTP shapes — default 6-digit, short 4-digit, masked code, and a
7
- * grouped 6-digit with a visual separator. Copy-paste starting point.
8
- */
9
- @Component({
10
- selector: 'kj-input-otp-usage-example',
11
- standalone: true,
12
- changeDetection: ChangeDetectionStrategy.OnPush,
13
- imports: [KjInputOtpComponent, FormsModule],
14
- styles: [`
15
- :host { display: flex; flex-direction: column; gap: var(--kj-space-lg); }
16
- .row { display: flex; flex-direction: column; gap: var(--kj-space-xs); }
17
- label { font: 500 var(--kj-text-sm)/1.4 var(--kj-font-sans); }
18
- code { font: var(--kj-text-xs)/1 var(--kj-font-mono); color: var(--kj-fg-muted); }
19
- `],
20
- template: `
21
- <div class="row">
22
- <label for="usage-otp-6">Verification code</label>
23
- <kj-input-otp id="usage-otp-6" kjAriaLabel="Verification code" [(ngModel)]="code" />
24
- <code>{{ code || '——' }}</code>
25
- </div>
26
-
27
- <div class="row">
28
- <label for="usage-otp-4">Short PIN</label>
29
- <kj-input-otp id="usage-otp-4" [kjLength]="4" kjAriaLabel="Short PIN" />
30
- </div>
31
-
32
- <div class="row">
33
- <label for="usage-otp-masked">Masked code</label>
34
- <kj-input-otp id="usage-otp-masked" [kjMask]="true" kjAriaLabel="Masked code" />
35
- </div>
36
-
37
- <div class="row">
38
- <label for="usage-otp-sep">Grouped code</label>
39
- <kj-input-otp id="usage-otp-sep" [kjSeparatorAfter]="[2]" kjAriaLabel="Grouped code" />
40
- </div>
41
- `,
42
- })
43
- export class KjInputOtpUsageExample {
44
- code = '';
45
- }
@@ -1,6 +0,0 @@
1
- // AUTO-GENERATED by scripts/migrate-examples.mjs
2
- // One barrel per component folder — used by the docs app as a lazy chunk.
3
- export { KjKbdComboExample } from './kbd.combo.example';
4
- export { KjKbdExample } from './kbd.example';
5
- export { KjKbdInTooltipExample } from './kbd.in-tooltip.example';
6
- export { KjKbdSizesExample } from './kbd.sizes.example';
@@ -1,24 +0,0 @@
1
- import { Component, ChangeDetectionStrategy } from '@angular/core';
2
- import { KjKbdComponent } from '../kbd';
3
-
4
- /**
5
- * Combo example: sibling `<kj-kbd>` elements with a literal " + " between
6
- * them. Per the analysis there is no `KjKbdGroup` directive — the visual
7
- * gap is just inline whitespace plus a `+` glyph, and AT correctly
8
- * announces the combo as e.g. "Control plus K" without extra ARIA wiring.
9
- */
10
- @Component({
11
- selector: 'kj-kbd-combo-example',
12
- standalone: true,
13
- imports: [KjKbdComponent],
14
- styles: [
15
- `
16
- :host {
17
- display: block;
18
- }
19
- `,
20
- ],
21
- changeDetection: ChangeDetectionStrategy.Eager,
22
- template: `<p><kj-kbd>Ctrl</kj-kbd> + <kj-kbd>K</kj-kbd></p>`,
23
- })
24
- export class KjKbdComboExample {}
@@ -1,22 +0,0 @@
1
- import { Component, ChangeDetectionStrategy } from '@angular/core';
2
- import { KjKbdComponent } from '../kbd';
3
-
4
- /**
5
- * Default usage example for KjKbdComponent.
6
- * A single keyboard-key visual rendered inline with prose. Anchors the chrome.
7
- */
8
- @Component({
9
- selector: 'kj-kbd-example',
10
- standalone: true,
11
- imports: [KjKbdComponent],
12
- styles: [
13
- `
14
- :host {
15
- display: block;
16
- }
17
- `,
18
- ],
19
- changeDetection: ChangeDetectionStrategy.Eager,
20
- template: `<p>Press <kj-kbd>K</kj-kbd> to focus search.</p>`,
21
- })
22
- export class KjKbdExample {}
@@ -1,43 +0,0 @@
1
- import { Component, ChangeDetectionStrategy } from '@angular/core';
2
- import { KjKbdComponent } from '../kbd';
3
- import { KjTooltipTrigger, KjTooltipContent } from '../../tooltip/tooltip';
4
- import { KjButtonComponent } from '../../button/button';
5
-
6
- /**
7
- * Kbd inside a tooltip — the canonical "shortcut hint" surface. The tooltip's
8
- * `aria-describedby` wiring picks up the kbd's text content automatically; no
9
- * special integration needed. Lives in the kbd folder so the kbd docs page
10
- * can preview it without depending on the tooltip docs page's example
11
- * registry.
12
- */
13
- @Component({
14
- selector: 'kj-kbd-in-tooltip-example',
15
- standalone: true,
16
- imports: [KjKbdComponent, KjTooltipTrigger, KjTooltipContent, KjButtonComponent],
17
- styles: [
18
- `
19
- :host {
20
- display: block;
21
- padding: var(--kj-space-2xl);
22
- }
23
- .kj-kbd-in-tooltip-body {
24
- display: inline-flex;
25
- align-items: center;
26
- gap: var(--kj-space-2xs);
27
- }
28
- `,
29
- ],
30
- changeDetection: ChangeDetectionStrategy.Eager,
31
- template: `
32
- <kj-button kjTooltipTrigger #t="kjTooltipTrigger" kjVariant="outline">Save</kj-button>
33
- <kj-tooltip-content [kjFor]="t">
34
- <span class="kj-kbd-in-tooltip-body">
35
- Save
36
- <kj-kbd kjSize="xs">Ctrl</kj-kbd>
37
- +
38
- <kj-kbd kjSize="xs">S</kj-kbd>
39
- </span>
40
- </kj-tooltip-content>
41
- `,
42
- })
43
- export class KjKbdInTooltipExample {}
@@ -1,31 +0,0 @@
1
- import { Component, ChangeDetectionStrategy } from '@angular/core';
2
- import { KjKbdComponent } from '../kbd';
3
-
4
- /**
5
- * Size scale: `xs` / `sm` / `md` / `lg`. Kbd is the one component that
6
- * legitimately wants `xs` (inline-with-prose hint chips need to be smaller
7
- * than the surrounding type so they don't dominate visually).
8
- */
9
- @Component({
10
- selector: 'kj-kbd-sizes-example',
11
- standalone: true,
12
- imports: [KjKbdComponent],
13
- styles: [
14
- `
15
- :host {
16
- display: flex;
17
- gap: var(--kj-space-md);
18
- align-items: center;
19
- flex-wrap: wrap;
20
- }
21
- `,
22
- ],
23
- changeDetection: ChangeDetectionStrategy.Eager,
24
- template: `
25
- <kj-kbd kjSize="xs">Esc</kj-kbd>
26
- <kj-kbd kjSize="sm">Esc</kj-kbd>
27
- <kj-kbd kjSize="md">Esc</kj-kbd>
28
- <kj-kbd kjSize="lg">Esc</kj-kbd>
29
- `,
30
- })
31
- export class KjKbdSizesExample {}
package/src/kbd/index.ts DELETED
@@ -1 +0,0 @@
1
- export * from './kbd';
package/src/kbd/kbd.css DELETED
@@ -1,67 +0,0 @@
1
- /* ─────────────────────────────────────────────────────────────
2
- .kj-kbd — component-layer tokens + structural CSS
3
-
4
- Theme-token-only. The directive sets `data-size` on the host;
5
- the rest is a small "raised key" silhouette: 1px border + soft
6
- inner shadow + monospace text. No variant — the kbd is tonally
7
- neutral (see analysis Open question section).
8
- ──────────────────────────────────────────────────────────── */
9
-
10
- @layer kj.component {
11
- .kj-kbd {
12
- --kj-kbd-bg: var(--kj-bg-surface);
13
- --kj-kbd-fg: var(--kj-fg-default);
14
- --kj-kbd-border-color: var(--kj-border-default);
15
- --kj-kbd-border-width: var(--kj-border, 1px);
16
- --kj-kbd-radius: var(--kj-radius-selector, 0.25rem);
17
- --kj-kbd-padding-x: 0.4em;
18
- --kj-kbd-padding-y: 0.15em;
19
- --kj-kbd-font: var(--kj-font-mono);
20
- --kj-kbd-font-size: var(--kj-text-sm);
21
-
22
- display: inline-flex;
23
- align-items: center;
24
- justify-content: center;
25
- vertical-align: baseline;
26
-
27
- background: var(--kj-kbd-bg);
28
- color: var(--kj-kbd-fg);
29
- border: var(--kj-kbd-border-width) solid var(--kj-kbd-border-color);
30
- border-radius: var(--kj-kbd-radius);
31
- padding: var(--kj-kbd-padding-y) var(--kj-kbd-padding-x);
32
-
33
- font-family: var(--kj-kbd-font);
34
- font-size: var(--kj-kbd-font-size);
35
- line-height: 1;
36
- white-space: nowrap;
37
- }
38
-
39
- /* Size routing — driven by the directive's [attr.data-size]. */
40
- .kj-kbd[data-size='xs'] {
41
- /* At xs the border carries most of the visual identity; bump it to a
42
- higher-contrast token so it clears 3:1 against base-100/200/300 page
43
- backgrounds (analysis Open question 5). */
44
- --kj-kbd-border-color: color-mix(in oklab, var(--kj-fg-default) 30%, transparent);
45
- --kj-kbd-font-size: var(--kj-text-xs);
46
- --kj-kbd-padding-x: 0.3em;
47
- --kj-kbd-padding-y: 0.1em;
48
- }
49
-
50
- .kj-kbd[data-size='sm'] {
51
- --kj-kbd-font-size: var(--kj-text-xs);
52
- --kj-kbd-padding-x: 0.35em;
53
- --kj-kbd-padding-y: 0.12em;
54
- }
55
-
56
- .kj-kbd[data-size='md'] {
57
- --kj-kbd-font-size: var(--kj-text-sm);
58
- --kj-kbd-padding-x: 0.4em;
59
- --kj-kbd-padding-y: 0.15em;
60
- }
61
-
62
- .kj-kbd[data-size='lg'] {
63
- --kj-kbd-font-size: var(--kj-text-base);
64
- --kj-kbd-padding-x: 0.5em;
65
- --kj-kbd-padding-y: 0.2em;
66
- }
67
- }
@@ -1,51 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, signal } from '@angular/core';
2
- import { KjKbdComponent } from './kbd';
3
- import type { PlaygroundFile } from '@kouji-ui/components/playground-types';
4
-
5
- /**
6
- * Playground state — module-scope signals. Knobs let users drive the kbd
7
- * size scale (the only library component that legitimately ships below
8
- * `sm`), the visible label, and the optional `aria-label` override for
9
- * unicode-glyph keys (⌘, ⌥, ↵).
10
- */
11
- const size = signal<'xs' | 'sm' | 'md' | 'lg'>('md');
12
- const label = signal('Enter');
13
- const ariaLabel = signal('');
14
-
15
- @Component({
16
- selector: 'kj-kbd-playground',
17
- standalone: true,
18
- imports: [KjKbdComponent],
19
- template: `
20
- <kj-kbd
21
- [kjSize]="size()"
22
- [kjKbdAriaLabel]="ariaLabel() || undefined"
23
- >{{ label() }}</kj-kbd>
24
- `,
25
- changeDetection: ChangeDetectionStrategy.OnPush,
26
- })
27
- export class KjKbdPlaygroundDemo {
28
- protected readonly size = size;
29
- protected readonly label = label;
30
- protected readonly ariaLabel = ariaLabel;
31
- }
32
-
33
- export const PLAYGROUND: PlaygroundFile = {
34
- component: KjKbdPlaygroundDemo,
35
- state: {
36
- size: size as unknown as ReturnType<typeof signal>,
37
- label: label as unknown as ReturnType<typeof signal>,
38
- ariaLabel: ariaLabel as unknown as ReturnType<typeof signal>,
39
- },
40
- controls: [
41
- { kind: 'chips', name: 'size', label: 'size', options: ['xs', 'sm', 'md', 'lg'] },
42
- { kind: 'text', name: 'label', label: 'label' },
43
- { kind: 'text', name: 'ariaLabel', label: 'aria-label (glyph keys)', placeholder: 'Command' },
44
- ],
45
- snippet: (values) => {
46
- const s = values as { size: string; label: string; ariaLabel: string };
47
- const attrs: string[] = [`kjSize="${s.size}"`];
48
- if (s.ariaLabel) attrs.push(`kjKbdAriaLabel="${s.ariaLabel}"`);
49
- return `<kj-kbd\n ${attrs.join('\n ')}\n>${s.label}</kj-kbd>`;
50
- },
51
- };
@@ -1,123 +0,0 @@
1
- import { Component, ChangeDetectionStrategy } from '@angular/core';
2
- import { TestBed } from '@angular/core/testing';
3
- import { describe, expect, test, beforeEach } from 'vitest';
4
- import { KjKbdComponent } from './kbd';
5
-
6
- /**
7
- * Flush microtasks + the rAF that backs `afterNextRender` so the underlying
8
- * `KjKbd` directive's dev-mode host inspection has a chance to settle before
9
- * assertions.
10
- */
11
- async function flushAfterNextRender(): Promise<void> {
12
- await new Promise<void>((resolve) => setTimeout(resolve, 0));
13
- await Promise.resolve();
14
- await Promise.resolve();
15
- }
16
-
17
- @Component({
18
- standalone: true,
19
- imports: [KjKbdComponent],
20
- changeDetection: ChangeDetectionStrategy.Eager,
21
- template: `<kj-kbd>K</kj-kbd>`,
22
- })
23
- class DefaultHost {}
24
-
25
- @Component({
26
- standalone: true,
27
- imports: [KjKbdComponent],
28
- changeDetection: ChangeDetectionStrategy.Eager,
29
- template: `<kj-kbd [kjSize]="size">{{ label }}</kj-kbd>`,
30
- })
31
- class SizedHost {
32
- size: 'xs' | 'sm' | 'md' | 'lg' = 'md';
33
- label = 'Enter';
34
- }
35
-
36
- @Component({
37
- standalone: true,
38
- imports: [KjKbdComponent],
39
- changeDetection: ChangeDetectionStrategy.Eager,
40
- template: `<kj-kbd [kjKbdAriaLabel]="ariaLabel">{{ label }}</kj-kbd>`,
41
- })
42
- class AriaLabelHost {
43
- ariaLabel: string | undefined = undefined;
44
- label = '⌘';
45
- }
46
-
47
- describe('KjKbdComponent', () => {
48
- beforeEach(() => {
49
- TestBed.configureTestingModule({});
50
- });
51
-
52
- describe('host element', () => {
53
- test('renders an inner <kbd> with the .kj-kbd class', async () => {
54
- const fixture = TestBed.createComponent(DefaultHost);
55
- fixture.detectChanges();
56
- await flushAfterNextRender();
57
- fixture.detectChanges();
58
- const root = fixture.nativeElement as HTMLElement;
59
- expect(root.querySelector('kj-kbd kbd.kj-kbd')).not.toBeNull();
60
- });
61
-
62
- test('projects content into the inner <kbd>', async () => {
63
- const fixture = TestBed.createComponent(DefaultHost);
64
- fixture.detectChanges();
65
- await flushAfterNextRender();
66
- fixture.detectChanges();
67
- const kbd = fixture.nativeElement.querySelector('kj-kbd kbd.kj-kbd')!;
68
- expect(kbd.textContent?.trim()).toBe('K');
69
- });
70
- });
71
-
72
- describe('aliased input forwarding', () => {
73
- test('resolves kjSize via the wrapper preset (default md)', async () => {
74
- const fixture = TestBed.createComponent(SizedHost);
75
- fixture.detectChanges();
76
- await flushAfterNextRender();
77
- fixture.detectChanges();
78
- const host = fixture.nativeElement.querySelector('kj-kbd kbd.kj-kbd')!;
79
- expect(host.getAttribute('data-size')).toBe('md');
80
- });
81
-
82
- test('forwards kjSize=xs to the directive (data-size)', async () => {
83
- const fixture = TestBed.createComponent(SizedHost);
84
- fixture.componentInstance.size = 'xs';
85
- fixture.detectChanges();
86
- await flushAfterNextRender();
87
- fixture.detectChanges();
88
- const host = fixture.nativeElement.querySelector('kj-kbd kbd.kj-kbd')!;
89
- expect(host.getAttribute('data-size')).toBe('xs');
90
- });
91
-
92
- test('forwards kjSize=lg to the directive (data-size)', async () => {
93
- const fixture = TestBed.createComponent(SizedHost);
94
- fixture.componentInstance.size = 'lg';
95
- fixture.detectChanges();
96
- await flushAfterNextRender();
97
- fixture.detectChanges();
98
- const host = fixture.nativeElement.querySelector('kj-kbd kbd.kj-kbd')!;
99
- expect(host.getAttribute('data-size')).toBe('lg');
100
- });
101
- });
102
-
103
- describe('aria-label propagation', () => {
104
- test('omits aria-label by default', async () => {
105
- const fixture = TestBed.createComponent(AriaLabelHost);
106
- fixture.detectChanges();
107
- await flushAfterNextRender();
108
- fixture.detectChanges();
109
- const host = fixture.nativeElement.querySelector('kj-kbd kbd.kj-kbd')!;
110
- expect(host.hasAttribute('aria-label')).toBe(false);
111
- });
112
-
113
- test('reflects kjKbdAriaLabel to the inner <kbd> aria-label', async () => {
114
- const fixture = TestBed.createComponent(AriaLabelHost);
115
- fixture.componentInstance.ariaLabel = 'Command';
116
- fixture.detectChanges();
117
- await flushAfterNextRender();
118
- fixture.detectChanges();
119
- const host = fixture.nativeElement.querySelector('kj-kbd kbd.kj-kbd')!;
120
- expect(host.getAttribute('aria-label')).toBe('Command');
121
- });
122
- });
123
- });