@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,150 +0,0 @@
1
- import { Component, ChangeDetectionStrategy, ModelSignal, ViewEncapsulation, input, model } from '@angular/core';
2
- import { KjButton } from '@kouji-ui/core';
3
-
4
- /**
5
- * Styled wrapper around the headless KjButton directive.
6
- *
7
- * Variant and size are user-configurable strings. Configure the allowed values
8
- * and defaults via `provideKjButton(…)` at the application or component scope.
9
- *
10
- * @example
11
- * ```html
12
- * <kj-button kjVariant="destructive" kjSize="lg" [kjLoading]="busy()">
13
- * Delete
14
- * </kj-button>
15
- * ```
16
- * @doc-example Default
17
- * The default playground — variant `secondary`, size `md`, no states.
18
- * @doc-file button.example.ts
19
- * @doc-example Usage
20
- * A walkthrough of the most common button usages — variants, sizes,
21
- * loading / disabled / pressed states, and a click handler. Use this as the
22
- * copy-paste starting point for new screens.
23
- * @doc-file button.usage.example.ts
24
- * @doc-example Variants
25
- * Primary / secondary / ghost / destructive — pick the visual weight that
26
- * matches the action's importance.
27
- * @doc-file button.variants.example.ts
28
- * @doc-example Sizes
29
- * `sm`, `md`, `lg` — `md` is the default. `sm` keeps a 44px touch target via
30
- * padding so it stays WCAG 2.5.5 compliant.
31
- * @doc-file button.sizes.example.ts
32
- * @doc-example Disabled
33
- * `[disabled]="true"` removes the button from the tab order and dims it. Use
34
- * for forms where validation hasn't passed.
35
- * @doc-file button.disabled.example.ts
36
- * @doc-example Loading
37
- * Toggle `[loading]="true"` while a request is in-flight. Implies disabled —
38
- * don't set both.
39
- * @doc-file button.loading.example.ts
40
- * @doc-example Pressed (toggle)
41
- * Stateful toggle via `[kjPressed]`. `aria-pressed` is wired automatically.
42
- * @doc-file button.pressed.example.ts
43
- * @doc-example Icon-only
44
- * Provide `[kjAriaLabel]` for screen readers — dev-mode enforces it.
45
- * @doc-file button.icon.example.ts
46
- * @doc-example Anchor as button
47
- * Render as `<a>` while keeping button visuals — handy for navigation that
48
- * needs to look like an action.
49
- * @doc-file button.anchor.example.ts
50
- * @doc-example Configured presets
51
- * `provideKjButton({ variant: 'primary' })` sets the default for every
52
- * button in the injection scope.
53
- * @doc-file button.configured.example.ts
54
- *
55
- * @doc-keyboard
56
- * Enter|Space — Activates the button (native click on the underlying
57
- * <button>; for [kjPressed] toggles this also flips the pressed state)
58
- * Tab — Moves focus to the next focusable element
59
- *
60
- * @doc-aria
61
- * aria-disabled — Reflected when [kjDisabled] or [kjLoading] is true
62
- * aria-busy — Reflected when [kjLoading] is true
63
- * aria-pressed — Reflected when used as a toggle (kjPressed is bound)
64
- * aria-label — Wired through to the inner <button>; required for icon-only
65
- * data-variant — Mirrors the resolved variant for theme/scope hooks
66
- * data-size — Mirrors the resolved size for theme/scope hooks
67
- *
68
- * @doc-css-var
69
- * --kj-button-bg — Background fill. Variant rules set this; override to brand-paint a one-off.
70
- * --kj-button-fg — Foreground (label + icon) color. Resolved per variant.
71
- * --kj-button-bg-hover — Hover background. Defaults to an 8% black mix on the variant fill.
72
- * --kj-button-fg-hover — Hover foreground (default variant only).
73
- * --kj-button-border-color — Border color. Outline/destructive set this per variant.
74
- * --kj-button-border-width — Border thickness. Inherits the theme's --kj-border.
75
- * --kj-button-radius — Corner radius. Inherits --kj-radius-field.
76
- * --kj-button-padding-x — Horizontal padding. Sizes override.
77
- * --kj-button-padding-y — Vertical padding. Sizes override.
78
- * --kj-button-gap — Gap between icon and label.
79
- * --kj-button-font — Font family. Defaults to --kj-font-sans.
80
- * --kj-button-font-size — Font size. Sizes override.
81
- * --kj-button-font-weight — Font weight. Default 600; brutalist themes bump it.
82
- * --kj-button-letter-spacing — Letter tracking. Default -0.01em.
83
- * --kj-button-height — Explicit height. Sizes (sm/md/lg/icon) set this.
84
- * --kj-button-min-width — Minimum width. Defaults to auto.
85
- * --kj-button-hover-translate — Y translation on hover (lift). -2px default; bauhaus -4px.
86
- * --kj-button-translate-active — Transform on press. Defaults to none.
87
- * --kj-button-shadow — Box shadow on the `default` variant. Unset by default — opt in at the page/scope where you want the brutalist offset (e.g. landing hero, docs playground stage).
88
- * --kj-button-shadow-hover — Box shadow on hover (default variant). Falls back to --kj-button-shadow.
89
- * --kj-button-shadow-active — Box shadow on press (default variant). Falls back to --kj-button-shadow.
90
- *
91
- * @doc-touch
92
- * `size="lg"` and `size="icon"` meet WCAG 2.5.5 ≥ 44×44 by default.
93
- * `sm` and `md` rely on the inline-text-link exception — embed in text only.
94
- *
95
- * @doc-a11y
96
- * Renders a real <button type="..."> (defaults to "button"), so the
97
- * native focus ring, click semantics, and form-submission behaviour
98
- * are preserved. `KjFocusRing` (from kjButton) shows the outline on
99
- * `:focus-visible` only — never on mouse-down. When used as an anchor
100
- * via `[routerLink]`, Enter activates per native anchor semantics.
101
- *
102
- * @doc-related button-group,link,icon
103
- *
104
- * @doc-category Library/Actions
105
- * @doc
106
- * @doc-name button
107
- * @doc-is-main
108
- * @doc-description Themed button with variants, sizes, and built-in disabled, loading, and pressed states.
109
- */
110
- @Component({
111
- selector: 'kj-button',
112
- standalone: true,
113
- imports: [KjButton],
114
- template: `
115
- <button
116
- [type]="kjType()"
117
- kjButton
118
- class="kj-button"
119
- [kjVariant]="kjVariant()"
120
- [kjSize]="kjSize()"
121
- [kjDisabled]="kjDisabled()"
122
- [kjLoading]="kjLoading()"
123
- [kjFullWidth]="kjFullWidth()"
124
- [(kjPressed)]="kjPressed"
125
- [attr.aria-label]="kjAriaLabel()"
126
- >
127
- @if (kjLoading()) {
128
- <span class="kj-button__spinner" aria-hidden="true"></span>
129
- } @else {
130
- <ng-content />
131
- }
132
- </button>
133
- `,
134
- styleUrl: './button.css',
135
- encapsulation: ViewEncapsulation.None,
136
- host: { style: 'display: contents;' },
137
- changeDetection: ChangeDetectionStrategy.OnPush,
138
- })
139
- export class KjButtonComponent {
140
- readonly kjVariant = input('default');
141
- readonly kjSize = input('md');
142
- readonly kjDisabled = input(false);
143
- readonly kjLoading = input(false);
144
- readonly kjFullWidth = input(false);
145
- // Field annotation matches the directive's — ng-packagr otherwise narrows
146
- // both sides to ModelSignal<boolean>, breaking the [(kjPressed)] binding.
147
- readonly kjPressed: ModelSignal<boolean | undefined> = model<boolean | undefined>(undefined);
148
- readonly kjType = input<'button' | 'submit' | 'reset'>('button');
149
- readonly kjAriaLabel = input<string | undefined>(undefined);
150
- }
@@ -1 +0,0 @@
1
- export * from './button';
@@ -1,30 +0,0 @@
1
- import { Component, ChangeDetectionStrategy } from '@angular/core';
2
- import { KjButtonGroupComponent } from '../button-group';
3
- import { KjButtonComponent } from '../../button/button';
4
-
5
- /**
6
- * Default usage example for KjButtonGroupComponent.
7
- * Three joined buttons with the group's defaults
8
- * (`kjOrientation="horizontal"`).
9
- */
10
- @Component({
11
- selector: 'kj-button-group-example',
12
- standalone: true,
13
- imports: [KjButtonGroupComponent, KjButtonComponent],
14
- styles: [
15
- `
16
- :host {
17
- display: block;
18
- }
19
- `,
20
- ],
21
- changeDetection: ChangeDetectionStrategy.Eager,
22
- template: `
23
- <kj-button-group kjAriaLabel="Document actions">
24
- <kj-button kjVariant="outline">Save</kj-button>
25
- <kj-button kjVariant="outline">Cancel</kj-button>
26
- <kj-button kjVariant="outline">Delete</kj-button>
27
- </kj-button-group>
28
- `,
29
- })
30
- export class KjButtonGroupExample {}
@@ -1,30 +0,0 @@
1
- import { Component, ChangeDetectionStrategy } from '@angular/core';
2
- import { KjButtonGroupComponent } from '../button-group';
3
- import { KjButtonComponent } from '../../button/button';
4
-
5
- /**
6
- * Icon-only segmented control. `kjSize="icon"` enforces the 44×44 touch
7
- * target on each child (per `KjButton`'s WCAG 2.5.5 rule), and the group
8
- * collapses the inner edges into a tight cluster suitable for a toolbar.
9
- */
10
- @Component({
11
- selector: 'kj-button-group-icon-only-example',
12
- standalone: true,
13
- imports: [KjButtonGroupComponent, KjButtonComponent],
14
- styles: [
15
- `
16
- :host {
17
- display: block;
18
- }
19
- `,
20
- ],
21
- changeDetection: ChangeDetectionStrategy.Eager,
22
- template: `
23
- <kj-button-group kjAriaLabel="Alignment">
24
- <kj-button kjVariant="outline" kjSize="icon" kjAriaLabel="Align left">⟸</kj-button>
25
- <kj-button kjVariant="outline" kjSize="icon" kjAriaLabel="Align center">≡</kj-button>
26
- <kj-button kjVariant="outline" kjSize="icon" kjAriaLabel="Align right">⟹</kj-button>
27
- </kj-button-group>
28
- `,
29
- })
30
- export class KjButtonGroupIconOnlyExample {}
@@ -1,36 +0,0 @@
1
- import { Component, signal, ChangeDetectionStrategy } from '@angular/core';
2
- import { KjButtonGroupComponent } from '../button-group';
3
- import { KjButtonComponent } from '../../button/button';
4
-
5
- /**
6
- * Toggle-style group using `KjButton`'s built-in `kjPressed` model on each
7
- * child. The group itself is purely presentational here — it provides the
8
- * segmented visual and the `role="group"` host. Per-child `[(kjPressed)]`
9
- * gives `aria-pressed` semantics without coupling the group to selection
10
- * state.
11
- */
12
- @Component({
13
- selector: 'kj-button-group-toggle-example',
14
- standalone: true,
15
- imports: [KjButtonGroupComponent, KjButtonComponent],
16
- styles: [
17
- `
18
- :host {
19
- display: block;
20
- }
21
- `,
22
- ],
23
- changeDetection: ChangeDetectionStrategy.Eager,
24
- template: `
25
- <kj-button-group kjAriaLabel="Text formatting">
26
- <kj-button kjVariant="outline" [(kjPressed)]="bold">Bold</kj-button>
27
- <kj-button kjVariant="outline" [(kjPressed)]="italic">Italic</kj-button>
28
- <kj-button kjVariant="outline" [(kjPressed)]="underline">Underline</kj-button>
29
- </kj-button-group>
30
- `,
31
- })
32
- export class KjButtonGroupToggleExample {
33
- readonly bold = signal<boolean | undefined>(true);
34
- readonly italic = signal<boolean | undefined>(false);
35
- readonly underline = signal<boolean | undefined>(false);
36
- }
@@ -1,40 +0,0 @@
1
- import { Component, ChangeDetectionStrategy } from '@angular/core';
2
- import { KjButtonGroupComponent } from '../button-group';
3
- import { KjButtonComponent } from '../../button/button';
4
-
5
- /**
6
- * Group-level variant propagation. The group sets `kjVariant="outline"` —
7
- * children that don't override read it as a fallback through the
8
- * `KJ_BUTTON_GROUP` context. Each child still applies the same variant
9
- * explicitly here so the styled wrapper picks it up; the group context is
10
- * the integration point for future variant-aware children.
11
- */
12
- @Component({
13
- selector: 'kj-button-group-variants-example',
14
- standalone: true,
15
- imports: [KjButtonGroupComponent, KjButtonComponent],
16
- styles: [
17
- `
18
- :host {
19
- display: flex;
20
- flex-direction: column;
21
- gap: var(--kj-space-md);
22
- }
23
- `,
24
- ],
25
- changeDetection: ChangeDetectionStrategy.Eager,
26
- template: `
27
- <kj-button-group kjVariant="outline" kjAriaLabel="Outline group">
28
- <kj-button kjVariant="outline">Day</kj-button>
29
- <kj-button kjVariant="outline">Week</kj-button>
30
- <kj-button kjVariant="outline">Month</kj-button>
31
- </kj-button-group>
32
-
33
- <kj-button-group kjVariant="ghost" kjAriaLabel="Ghost group">
34
- <kj-button kjVariant="ghost">Cut</kj-button>
35
- <kj-button kjVariant="ghost">Copy</kj-button>
36
- <kj-button kjVariant="ghost">Paste</kj-button>
37
- </kj-button-group>
38
- `,
39
- })
40
- export class KjButtonGroupVariantsExample {}
@@ -1,29 +0,0 @@
1
- import { Component, ChangeDetectionStrategy } from '@angular/core';
2
- import { KjButtonGroupComponent } from '../button-group';
3
- import { KjButtonComponent } from '../../button/button';
4
-
5
- /**
6
- * Vertical orientation: the group stacks its children top-to-bottom and
7
- * collapses the touching top/bottom edges into a single segmented column.
8
- */
9
- @Component({
10
- selector: 'kj-button-group-vertical-example',
11
- standalone: true,
12
- imports: [KjButtonGroupComponent, KjButtonComponent],
13
- styles: [
14
- `
15
- :host {
16
- display: block;
17
- }
18
- `,
19
- ],
20
- changeDetection: ChangeDetectionStrategy.Eager,
21
- template: `
22
- <kj-button-group kjOrientation="vertical" kjAriaLabel="View options">
23
- <kj-button kjVariant="outline">Top</kj-button>
24
- <kj-button kjVariant="outline">Middle</kj-button>
25
- <kj-button kjVariant="outline">Bottom</kj-button>
26
- </kj-button-group>
27
- `,
28
- })
29
- export class KjButtonGroupVerticalExample {}
@@ -1,7 +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 { KjButtonGroupExample } from './button-group.example';
4
- export { KjButtonGroupIconOnlyExample } from './button-group.icon-only.example';
5
- export { KjButtonGroupToggleExample } from './button-group.toggle.example';
6
- export { KjButtonGroupVariantsExample } from './button-group.variants.example';
7
- export { KjButtonGroupVerticalExample } from './button-group.vertical.example';
@@ -1,80 +0,0 @@
1
- /* ─────────────────────────────────────────────────────────────
2
- .kj-button-group — segmented cluster of <kj-button> children.
3
- The wrapper itself is a flex container with no padding/bg of
4
- its own; segmented "chunky" feel comes from collapsing the
5
- inner borders between adjacent buttons and squaring their
6
- touching edges while keeping the group's outer corners
7
- rounded.
8
- ──────────────────────────────────────────────────────────── */
9
-
10
- @layer kj.component {
11
- .kj-button-group {
12
- --kj-button-group-gap: 0;
13
- display: inline-flex;
14
- flex-direction: row;
15
- align-items: stretch;
16
- gap: var(--kj-button-group-gap);
17
- border-radius: var(--kj-radius-field);
18
- /* Hide pseudo-overflow from collapsed-corner siblings. Children also
19
- inherit display:contents semantics from <kj-button>, so the inner
20
- <button> is the actual flex item. */
21
- isolation: isolate;
22
- }
23
-
24
- .kj-button-group[data-orientation='vertical'] {
25
- flex-direction: column;
26
- }
27
-
28
- /* Each <kj-button> sets `display: contents` on its host (see button.ts);
29
- the styled element is the inner `.kj-button`. Squarish inner edges +
30
- rounded outer edges fall out of :first-child / :last-child rules on
31
- those inner buttons. */
32
-
33
- /* ── Horizontal: collapse left/right radii on middle items ─────────── */
34
- .kj-button-group:not([data-orientation='vertical']) > kj-button > .kj-button {
35
- border-radius: 0;
36
- /* Pull adjacent borders into a single visual line. */
37
- margin-left: calc(-1 * var(--kj-border));
38
- }
39
- .kj-button-group:not([data-orientation='vertical']) > kj-button:first-child > .kj-button {
40
- border-top-left-radius: var(--kj-radius-field);
41
- border-bottom-left-radius: var(--kj-radius-field);
42
- margin-left: 0;
43
- }
44
- .kj-button-group:not([data-orientation='vertical']) > kj-button:last-child > .kj-button {
45
- border-top-right-radius: var(--kj-radius-field);
46
- border-bottom-right-radius: var(--kj-radius-field);
47
- }
48
-
49
- /* ── Vertical: collapse top/bottom radii on middle items ───────────── */
50
- .kj-button-group[data-orientation='vertical'] > kj-button > .kj-button {
51
- border-radius: 0;
52
- margin-top: calc(-1 * var(--kj-border));
53
- width: 100%;
54
- }
55
- .kj-button-group[data-orientation='vertical'] > kj-button:first-child > .kj-button {
56
- border-top-left-radius: var(--kj-radius-field);
57
- border-top-right-radius: var(--kj-radius-field);
58
- margin-top: 0;
59
- }
60
- .kj-button-group[data-orientation='vertical'] > kj-button:last-child > .kj-button {
61
- border-bottom-left-radius: var(--kj-radius-field);
62
- border-bottom-right-radius: var(--kj-radius-field);
63
- }
64
-
65
- /* Lift the focused / hovered / pressed button above its neighbours so its
66
- border isn't clipped by the negative-margin overlap. */
67
- .kj-button-group > kj-button > .kj-button:hover,
68
- .kj-button-group > kj-button > .kj-button:focus-visible,
69
- .kj-button-group > kj-button > .kj-button[aria-pressed='true'] {
70
- z-index: 1;
71
- }
72
-
73
- /* Group-level disabled: visually muted when the directive flags it. The
74
- individual <kj-button>s still render their own aria-disabled when their
75
- own kjDisabled is true; consumers wiring the group context as a fallback
76
- will get aria-disabled on every child. */
77
- .kj-button-group[data-disabled] {
78
- opacity: 0.7;
79
- }
80
- }
@@ -1,94 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, signal } from '@angular/core';
2
- import { KjButtonGroupComponent } from './button-group';
3
- import { KjButtonComponent } from '../button/button';
4
- import type { PlaygroundFile } from '@kouji-ui/components/playground-types';
5
-
6
- /**
7
- * Playground state — module-scope signals. Tunes orientation, the cascaded
8
- * variant / size for member buttons, disabled state, and the button count so
9
- * the segmented joining can be verified visually.
10
- */
11
- const orientation = signal<'horizontal' | 'vertical'>('horizontal');
12
- const variant = signal<'default' | 'outline' | 'ghost' | 'destructive'>('outline');
13
- const size = signal<'sm' | 'md' | 'lg'>('md');
14
- const count = signal<2 | 3 | 4>(3);
15
- const disabled = signal(false);
16
-
17
- const LABELS = ['Save', 'Cancel', 'Delete', 'Archive'] as const;
18
-
19
- @Component({
20
- selector: 'kj-button-group-playground',
21
- standalone: true,
22
- imports: [KjButtonGroupComponent, KjButtonComponent],
23
- template: `
24
- <kj-button-group
25
- [kjOrientation]="orientation()"
26
- [kjVariant]="variant()"
27
- [kjSize]="size()"
28
- [kjDisabled]="disabled()"
29
- >
30
- @for (label of buttons(); track label) {
31
- <kj-button>{{ label }}</kj-button>
32
- }
33
- </kj-button-group>
34
- `,
35
- changeDetection: ChangeDetectionStrategy.OnPush,
36
- })
37
- export class KjButtonGroupPlaygroundDemo {
38
- protected readonly orientation = orientation;
39
- protected readonly variant = variant;
40
- protected readonly size = size;
41
- protected readonly count = count;
42
- protected readonly disabled = disabled;
43
-
44
- protected buttons(): readonly string[] {
45
- return LABELS.slice(0, count());
46
- }
47
- }
48
-
49
- export const PLAYGROUND: PlaygroundFile = {
50
- component: KjButtonGroupPlaygroundDemo,
51
- state: {
52
- orientation: orientation as unknown as ReturnType<typeof signal>,
53
- variant: variant as unknown as ReturnType<typeof signal>,
54
- size: size as unknown as ReturnType<typeof signal>,
55
- count: count as unknown as ReturnType<typeof signal>,
56
- disabled: disabled as unknown as ReturnType<typeof signal>,
57
- },
58
- controls: [
59
- {
60
- kind: 'chips',
61
- name: 'orientation',
62
- label: 'orientation',
63
- options: ['horizontal', 'vertical'],
64
- },
65
- {
66
- kind: 'chips',
67
- name: 'variant',
68
- label: 'variant',
69
- options: ['default', 'outline', 'ghost', 'destructive'],
70
- },
71
- { kind: 'chips', name: 'size', label: 'size', options: ['sm', 'md', 'lg'] },
72
- { kind: 'chips', name: 'count', label: 'buttons', options: [2, 3, 4] },
73
- { kind: 'toggle', name: 'disabled', label: 'disabled' },
74
- ],
75
- snippet: (values) => {
76
- const s = values as {
77
- orientation: string;
78
- variant: string;
79
- size: string;
80
- count: number;
81
- disabled: boolean;
82
- };
83
- const attrs: string[] = [
84
- `kjOrientation="${s.orientation}"`,
85
- `kjVariant="${s.variant}"`,
86
- `kjSize="${s.size}"`,
87
- ];
88
- if (s.disabled) attrs.push('[kjDisabled]="true"');
89
- const children = LABELS.slice(0, s.count)
90
- .map((label) => ` <kj-button>${label}</kj-button>`)
91
- .join('\n');
92
- return `<kj-button-group\n ${attrs.join('\n ')}\n>\n${children}\n</kj-button-group>`;
93
- },
94
- };
@@ -1,119 +0,0 @@
1
- import { Component, inject, ChangeDetectionStrategy } from '@angular/core';
2
- import { TestBed } from '@angular/core/testing';
3
- import { describe, expect, test, beforeEach } from 'vitest';
4
- import { KJ_BUTTON_GROUP } from '@kouji-ui/core';
5
- import { KjButtonGroupComponent } from './button-group';
6
- import { KjButtonComponent } from '../button/button';
7
-
8
- @Component({
9
- standalone: true,
10
- imports: [KjButtonGroupComponent, KjButtonComponent],
11
- changeDetection: ChangeDetectionStrategy.Eager,
12
- template: `
13
- <kj-button-group
14
- [kjOrientation]="orientation"
15
- [kjVariant]="variant"
16
- [kjSize]="size"
17
- [kjDisabled]="disabled"
18
- [kjAriaLabel]="ariaLabel"
19
- >
20
- <kj-button>One</kj-button>
21
- <kj-button>Two</kj-button>
22
- <kj-button>Three</kj-button>
23
- </kj-button-group>
24
- `,
25
- })
26
- class HostComponent {
27
- orientation: 'horizontal' | 'vertical' = 'horizontal';
28
- variant: string | undefined = undefined;
29
- size: string | undefined = undefined;
30
- disabled = false;
31
- ariaLabel: string | undefined = undefined;
32
- }
33
-
34
- describe('KjButtonGroupComponent', () => {
35
- beforeEach(() => {
36
- TestBed.configureTestingModule({ imports: [HostComponent] });
37
- });
38
-
39
- test('renders host with .kj-button-group class and role="group"', () => {
40
- const fixture = TestBed.createComponent(HostComponent);
41
- fixture.detectChanges();
42
- const host = fixture.nativeElement.querySelector('kj-button-group');
43
- expect(host).not.toBeNull();
44
- expect(host.classList.contains('kj-button-group')).toBe(true);
45
- expect(host.getAttribute('role')).toBe('group');
46
- });
47
-
48
- test('reflects kjOrientation to data-orientation', () => {
49
- const fixture = TestBed.createComponent(HostComponent);
50
- fixture.componentInstance.orientation = 'vertical';
51
- fixture.detectChanges();
52
- const host = fixture.nativeElement.querySelector('kj-button-group');
53
- expect(host.getAttribute('data-orientation')).toBe('vertical');
54
- });
55
-
56
- test('forwards kjAriaLabel to host', () => {
57
- const fixture = TestBed.createComponent(HostComponent);
58
- fixture.componentInstance.ariaLabel = 'Toolbar';
59
- fixture.detectChanges();
60
- const host = fixture.nativeElement.querySelector('kj-button-group');
61
- expect(host.getAttribute('aria-label')).toBe('Toolbar');
62
- });
63
-
64
- test('writes data-disabled when kjDisabled is true', () => {
65
- const fixture = TestBed.createComponent(HostComponent);
66
- fixture.componentInstance.disabled = true;
67
- fixture.detectChanges();
68
- const host = fixture.nativeElement.querySelector('kj-button-group');
69
- expect(host.getAttribute('data-disabled')).toBe('');
70
- });
71
-
72
- test('omits data-disabled when not disabled', () => {
73
- const fixture = TestBed.createComponent(HostComponent);
74
- fixture.detectChanges();
75
- const host = fixture.nativeElement.querySelector('kj-button-group');
76
- expect(host.hasAttribute('data-disabled')).toBe(false);
77
- });
78
-
79
- test('projects child <kj-button> elements', () => {
80
- const fixture = TestBed.createComponent(HostComponent);
81
- fixture.detectChanges();
82
- const host = fixture.nativeElement.querySelector('kj-button-group');
83
- expect(host.querySelectorAll('button.kj-button').length).toBe(3);
84
- });
85
-
86
- test('exposes KJ_BUTTON_GROUP context with forwarded variant/size', () => {
87
- let captured: ReturnType<typeof inject<typeof KJ_BUTTON_GROUP>> | undefined;
88
-
89
- @Component({
90
- selector: 'kj-bg-probe',
91
- standalone: true,
92
- template: '',
93
- })
94
- class Probe {
95
- constructor() {
96
- captured = inject(KJ_BUTTON_GROUP);
97
- }
98
- }
99
-
100
- @Component({
101
- standalone: true,
102
- imports: [KjButtonGroupComponent, Probe],
103
- template: `
104
- <kj-button-group kjVariant="ghost" kjSize="lg">
105
- <kj-bg-probe />
106
- </kj-button-group>
107
- `,
108
- })
109
- class HostWithProbe {}
110
-
111
- TestBed.configureTestingModule({ imports: [HostWithProbe] });
112
- const fixture = TestBed.createComponent(HostWithProbe);
113
- fixture.detectChanges();
114
-
115
- expect(captured).toBeDefined();
116
- expect(captured!.variant()).toBe('ghost');
117
- expect(captured!.size()).toBe('lg');
118
- });
119
- });