@westpac/ui 0.7.0 → 0.7.1

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 (365) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/assets/icons/filled/credit-cards-filled.svg +4 -0
  3. package/assets/icons/filled/exit-filled.svg +3 -3
  4. package/assets/icons/filled/office-filled.svg +1 -4
  5. package/assets/icons/filled/pay-to-filled.svg +5 -0
  6. package/assets/icons/filled/tiles-filled.svg +6 -0
  7. package/assets/icons/outlined/credit-cards-outlined.svg +4 -0
  8. package/assets/icons/outlined/exit-outlined.svg +3 -3
  9. package/assets/icons/outlined/office-outlined.svg +4 -1
  10. package/assets/icons/outlined/pay-to-outlined.svg +5 -0
  11. package/assets/icons/outlined/tiles-outlined.svg +3 -0
  12. package/dist/component-type.json +1 -0
  13. package/dist/components/accordion/accordion.component.d.ts +8 -23
  14. package/dist/components/accordion/accordion.component.js +3 -4
  15. package/dist/components/accordion/accordion.stories.d.ts +9 -6
  16. package/dist/components/accordion/accordion.stories.js +37 -29
  17. package/dist/components/accordion/accordion.styles.d.ts +1 -9
  18. package/dist/components/accordion/accordion.styles.js +1 -5
  19. package/dist/components/accordion/accordion.types.d.ts +11 -5
  20. package/dist/components/accordion/components/accordion-item/accordion-item.component.d.ts +4 -1
  21. package/dist/components/accordion/components/accordion-item/accordion-item.component.js +18 -17
  22. package/dist/components/accordion/components/accordion-item/accordion-item.styles.d.ts +4 -24
  23. package/dist/components/accordion/components/accordion-item/accordion-item.styles.js +8 -42
  24. package/dist/components/accordion/components/accordion-item/accordion-item.types.d.ts +7 -1
  25. package/dist/components/alert/alert.component.js +1 -0
  26. package/dist/components/alert/alert.styles.js +3 -3
  27. package/dist/components/alert/alert.types.d.ts +1 -3
  28. package/dist/components/autocomplete/autocomplete.component.js +1 -0
  29. package/dist/components/autocomplete/autocomplete.types.d.ts +15 -1
  30. package/dist/components/autocomplete/components/list-box/components/list-box-option/list-box-option.component.d.ts +3 -0
  31. package/dist/components/autocomplete/components/list-box/components/list-box-section/list-box-section.component.d.ts +3 -0
  32. package/dist/components/autocomplete/components/list-box/list-box.component.d.ts +3 -0
  33. package/dist/components/autocomplete/components/popover/popover.component.d.ts +3 -0
  34. package/dist/components/badge/badge.component.d.ts +7 -49
  35. package/dist/components/badge/badge.component.js +1 -0
  36. package/dist/components/badge/badge.types.d.ts +11 -1
  37. package/dist/components/breadcrumb/breadcrumb.component.d.ts +1 -21
  38. package/dist/components/breadcrumb/breadcrumb.component.js +1 -0
  39. package/dist/components/breadcrumb/breadcrumb.types.d.ts +8 -2
  40. package/dist/components/breadcrumb/components/breadcrumb-item/breadcrumb-item.component.d.ts +1 -21
  41. package/dist/components/breadcrumb/components/breadcrumb-item/breadcrumb-item.component.js +1 -0
  42. package/dist/components/breadcrumb/components/breadcrumb-item/breadcrumb-item.types.d.ts +1 -3
  43. package/dist/components/button/button.component.d.ts +16 -125
  44. package/dist/components/button/button.component.js +1 -0
  45. package/dist/components/button/button.styles.js +5 -5
  46. package/dist/components/button/button.types.d.ts +23 -1
  47. package/dist/components/button-dropdown/button-dropdown.component.js +1 -0
  48. package/dist/components/button-dropdown/button-dropdown.styles.d.ts +2 -0
  49. package/dist/components/button-dropdown/button-dropdown.styles.js +2 -1
  50. package/dist/components/button-dropdown/button-dropdown.types.d.ts +7 -1
  51. package/dist/components/button-dropdown/components/panel/panel.component.d.ts +3 -0
  52. package/dist/components/button-group/button-group.component.js +1 -0
  53. package/dist/components/checkbox-group/checkbox-group.component.js +1 -0
  54. package/dist/components/checkbox-group/components/checkbox/checkbox.component.js +11 -4
  55. package/dist/components/circle/circle.types.d.ts +1 -3
  56. package/dist/components/collapsible/collapsible.component.js +1 -0
  57. package/dist/components/collapsible/collapsible.styles.js +1 -1
  58. package/dist/components/compacta/compacta.component.js +2 -1
  59. package/dist/components/compacta/compacta.styles.js +10 -10
  60. package/dist/components/date-picker/date-picker.component.js +1 -0
  61. package/dist/components/date-picker/date-picker.types.d.ts +7 -1
  62. package/dist/components/error-message/error-message.types.d.ts +1 -3
  63. package/dist/components/field/field.component.js +1 -0
  64. package/dist/components/field/field.types.d.ts +1 -3
  65. package/dist/components/flexi-cell/components/flexi-cell-adornment/flexi-cell-adornment.component.d.ts +4 -1
  66. package/dist/components/flexi-cell/components/flexi-cell-adornment/flexi-cell-adornment.component.js +1 -0
  67. package/dist/components/flexi-cell/components/flexi-cell-adornment/flexi-cell-adornment.types.d.ts +1 -3
  68. package/dist/components/flexi-cell/components/flexi-cell-body/flexi-cell-body.component.d.ts +4 -1
  69. package/dist/components/flexi-cell/components/flexi-cell-body/flexi-cell-body.component.js +1 -0
  70. package/dist/components/flexi-cell/components/flexi-cell-body/flexi-cell-body.types.d.ts +1 -3
  71. package/dist/components/flexi-cell/components/flexi-cell-button/flexi-cell-button.component.d.ts +4 -1
  72. package/dist/components/flexi-cell/components/flexi-cell-button/flexi-cell-button.component.js +1 -0
  73. package/dist/components/flexi-cell/components/flexi-cell-circle/flexi-cell-circle.component.d.ts +4 -1
  74. package/dist/components/flexi-cell/components/flexi-cell-circle/flexi-cell-circle.component.js +1 -0
  75. package/dist/components/flexi-cell/components/flexi-cell-footer/flexi-cell-footer.component.d.ts +4 -1
  76. package/dist/components/flexi-cell/components/flexi-cell-footer/flexi-cell-footer.component.js +1 -0
  77. package/dist/components/flexi-cell/components/flexi-cell-hint/flexi-cell-hint.component.d.ts +4 -1
  78. package/dist/components/flexi-cell/components/flexi-cell-hint/flexi-cell-hint.component.js +1 -0
  79. package/dist/components/flexi-cell/components/flexi-cell-hint/flexi-cell-hint.types.d.ts +1 -3
  80. package/dist/components/flexi-cell/components/flexi-cell-label/flexi-cell-label.component.d.ts +4 -1
  81. package/dist/components/flexi-cell/components/flexi-cell-label/flexi-cell-label.component.js +1 -0
  82. package/dist/components/flexi-cell/components/flexi-cell-label/flexi-cell-label.types.d.ts +1 -3
  83. package/dist/components/flexi-cell/flexi-cell.component.js +1 -0
  84. package/dist/components/flexi-cell/flexi-cell.types.d.ts +1 -3
  85. package/dist/components/form/components/form-chit-chat/form-chit-chat.types.d.ts +1 -3
  86. package/dist/components/form/components/form-group/form-group.types.d.ts +1 -3
  87. package/dist/components/form/components/form-section/form-section.types.d.ts +7 -1
  88. package/dist/components/form/form.component.js +1 -0
  89. package/dist/components/form/form.types.d.ts +9 -0
  90. package/dist/components/form-hint/form-hint.types.d.ts +1 -3
  91. package/dist/components/form-label/form-label.types.d.ts +8 -2
  92. package/dist/components/grid/components/container/container.types.d.ts +1 -3
  93. package/dist/components/grid/components/item/item.types.d.ts +11 -1
  94. package/dist/components/grid/grid.types.d.ts +1 -3
  95. package/dist/components/icon/components/credit-cards-icon.d.ts +2 -0
  96. package/dist/components/icon/components/credit-cards-icon.js +38 -0
  97. package/dist/components/icon/components/exit-icon.js +2 -2
  98. package/dist/components/icon/components/office-icon.d.ts +1 -1
  99. package/dist/components/icon/components/office-icon.js +19 -5
  100. package/dist/components/icon/components/pay-to-icon.d.ts +2 -0
  101. package/dist/components/icon/components/pay-to-icon.js +34 -0
  102. package/dist/components/icon/components/tiles-icon.d.ts +2 -0
  103. package/dist/components/icon/components/tiles-icon.js +39 -0
  104. package/dist/components/icon/icon.styles.d.ts +1 -1
  105. package/dist/components/icon/icon.styles.js +1 -1
  106. package/dist/components/icon/icon.types.d.ts +11 -1
  107. package/dist/components/icon/index.d.ts +3 -6
  108. package/dist/components/icon/index.js +3 -6
  109. package/dist/components/input/input.component.d.ts +4 -31
  110. package/dist/components/input/input.component.js +1 -0
  111. package/dist/components/input/input.styles.d.ts +1 -1
  112. package/dist/components/input/input.styles.js +1 -1
  113. package/dist/components/input/input.types.d.ts +10 -1
  114. package/dist/components/input-field/components/add-ons/add-ons.component.d.ts +3 -0
  115. package/dist/components/input-field/components/add-ons/components/default-add-on/default-add-on.component.d.ts +3 -0
  116. package/dist/components/input-field/components/add-ons/components/default-add-on/default-add-on.types.d.ts +1 -3
  117. package/dist/components/input-field/components/add-ons/components/icon-add-on/icon-add-on.component.d.ts +3 -0
  118. package/dist/components/input-field/components/add-ons/components/icon-add-on/icon-add-on.types.d.ts +1 -3
  119. package/dist/components/input-field/components/add-ons/components/text-add-on/text-add-on.component.d.ts +3 -0
  120. package/dist/components/input-field/components/add-ons/components/text-add-on/text-add-on.types.d.ts +1 -3
  121. package/dist/components/input-field/components/supporting-text/supporting-text.component.d.ts +3 -0
  122. package/dist/components/input-field/components/supporting-text/supporting-text.types.d.ts +1 -3
  123. package/dist/components/input-field/input-field.component.js +1 -0
  124. package/dist/components/input-field/input-field.scenarios.stories.js +2 -2
  125. package/dist/components/input-field/input-field.types.d.ts +1 -3
  126. package/dist/components/link/link.component.js +1 -0
  127. package/dist/components/list/list.component.js +1 -0
  128. package/dist/components/modal/components/backdrop/backdrop.types.d.ts +1 -3
  129. package/dist/components/modal/components/dialog/components/dialog-body/dialog-body.types.d.ts +1 -3
  130. package/dist/components/modal/components/dialog/components/dialog-footer/dialog-footer.types.d.ts +1 -3
  131. package/dist/components/modal/components/dialog/dialog.types.d.ts +7 -1
  132. package/dist/components/modal/modal.component.js +1 -0
  133. package/dist/components/pagination/components/pagination-item/pagination-item.component.d.ts +1 -1
  134. package/dist/components/pagination/components/pagination-item/pagination-item.component.js +2 -1
  135. package/dist/components/pagination/components/pagination-item/pagination-item.styles.d.ts +9 -1
  136. package/dist/components/pagination/components/pagination-item/pagination-item.styles.js +7 -3
  137. package/dist/components/pagination/components/pagination-item/pagination-item.types.d.ts +20 -2
  138. package/dist/components/pagination/pagination.component.js +3 -1
  139. package/dist/components/pagination/pagination.stories.js +1 -1
  140. package/dist/components/pagination/pagination.styles.js +1 -1
  141. package/dist/components/pagination/pagination.types.d.ts +1 -3
  142. package/dist/components/pictogram/pictogram.types.d.ts +1 -3
  143. package/dist/components/popover/popover.component.js +1 -0
  144. package/dist/components/progress-bar/progress-bar.component.js +1 -0
  145. package/dist/components/progress-rope/components/progress-rope-group-step/progress-rope-group-step.types.d.ts +1 -3
  146. package/dist/components/progress-rope/components/progress-rope-step/progress-rope-step.types.d.ts +11 -1
  147. package/dist/components/progress-rope/progress-rope.component.js +1 -0
  148. package/dist/components/progress-rope/progress-rope.types.d.ts +1 -3
  149. package/dist/components/radio-group/components/radio/radio.component.js +1 -0
  150. package/dist/components/radio-group/components/radio/radio.styles.js +2 -2
  151. package/dist/components/radio-group/radio-group.component.js +1 -0
  152. package/dist/components/repeater/repeater.component.js +3 -1
  153. package/dist/components/repeater/repeater.styles.js +2 -2
  154. package/dist/components/select/select.component.d.ts +8 -35
  155. package/dist/components/select/select.component.js +1 -0
  156. package/dist/components/select/select.styles.d.ts +1 -1
  157. package/dist/components/select/select.styles.js +1 -1
  158. package/dist/components/select/select.types.d.ts +12 -1
  159. package/dist/components/selector/components/selector-checkbox-group/components/selector-checkbox-group-option/selector-checkbox-group-option.types.d.ts +1 -3
  160. package/dist/components/selector/components/selector-checkbox-group/selector-checkbox-group.component.d.ts +28 -7
  161. package/dist/components/selector/components/selector-checkbox-group/selector-checkbox-group.types.d.ts +1 -3
  162. package/dist/components/selector/components/selector-radio-group/components/selector-radio-group-option/selector-radio-group-option.types.d.ts +1 -3
  163. package/dist/components/selector/components/selector-radio-group/selector-radio-group.component.d.ts +28 -7
  164. package/dist/components/selector/components/selector-radio-group/selector-radio-group.types.d.ts +7 -1
  165. package/dist/components/selector/selector.component.d.ts +81 -21
  166. package/dist/components/selector/selector.component.js +1 -0
  167. package/dist/components/skip-link/skip-link.component.js +1 -0
  168. package/dist/components/skip-link/skip-link.types.d.ts +1 -3
  169. package/dist/components/switch/switch.component.js +1 -0
  170. package/dist/components/switch/switch.types.d.ts +8 -2
  171. package/dist/components/symbol/index.d.ts +1 -0
  172. package/dist/components/symbol/index.js +1 -0
  173. package/dist/components/symbol/symbol.stories.d.ts +1 -0
  174. package/dist/components/symbol/symbol.stories.js +62 -3
  175. package/dist/components/symbol/symbol.types.d.ts +1 -3
  176. package/dist/components/table/table.component.js +1 -0
  177. package/dist/components/tabs/components/tab/tab.types.d.ts +15 -1
  178. package/dist/components/tabs/components/tab-panel/tab-panel.component.d.ts +3 -0
  179. package/dist/components/tabs/components/tab-panel/tab-panel.component.js +1 -0
  180. package/dist/components/tabs/components/tab-panel/tab-panel.types.d.ts +7 -1
  181. package/dist/components/tabs/tabs.component.js +1 -0
  182. package/dist/components/tabs/tabs.types.d.ts +15 -1
  183. package/dist/components/textarea/textarea.component.d.ts +8 -31
  184. package/dist/components/textarea/textarea.component.js +1 -0
  185. package/dist/components/textarea/textarea.styles.d.ts +1 -1
  186. package/dist/components/textarea/textarea.styles.js +1 -1
  187. package/dist/components/textarea/textarea.types.d.ts +12 -1
  188. package/dist/components/visually-hidden/visually-hidden.types.d.ts +1 -3
  189. package/dist/components/well/well.types.d.ts +7 -1
  190. package/dist/css/westpac-ui.css +67 -392
  191. package/dist/css/westpac-ui.min.css +67 -392
  192. package/dist/index.d.ts +1 -0
  193. package/dist/index.js +1 -0
  194. package/dist/stories/foundation/colours.stories.js +0 -1
  195. package/dist/types/component-props.types.d.ts +2 -0
  196. package/dist/types/component-props.types.js +1 -0
  197. package/dist/types/index.d.ts +1 -0
  198. package/dist/types/index.js +1 -0
  199. package/generate-component-types.cjs +85 -0
  200. package/package.json +13 -8
  201. package/src/components/accordion/accordion.component.tsx +5 -8
  202. package/src/components/accordion/accordion.stories.tsx +40 -31
  203. package/src/components/accordion/accordion.styles.ts +1 -5
  204. package/src/components/accordion/accordion.types.ts +15 -11
  205. package/src/components/accordion/components/accordion-item/accordion-item.component.tsx +11 -15
  206. package/src/components/accordion/components/accordion-item/accordion-item.styles.ts +7 -36
  207. package/src/components/accordion/components/accordion-item/accordion-item.types.ts +7 -2
  208. package/src/components/alert/alert.component.tsx +2 -0
  209. package/src/components/alert/alert.styles.ts +3 -3
  210. package/src/components/alert/alert.types.ts +1 -5
  211. package/src/components/autocomplete/autocomplete.component.tsx +2 -0
  212. package/src/components/autocomplete/autocomplete.types.ts +15 -2
  213. package/src/components/autocomplete/components/list-box/components/list-box-option/list-box-option.component.tsx +3 -0
  214. package/src/components/autocomplete/components/list-box/components/list-box-section/list-box-section.component.tsx +3 -0
  215. package/src/components/autocomplete/components/list-box/list-box.component.tsx +3 -0
  216. package/src/components/autocomplete/components/popover/popover.component.tsx +3 -1
  217. package/src/components/autocomplete/components/popover/popover.types.ts +1 -0
  218. package/src/components/badge/badge.component.tsx +2 -0
  219. package/src/components/badge/badge.types.ts +11 -2
  220. package/src/components/breadcrumb/breadcrumb.component.tsx +2 -0
  221. package/src/components/breadcrumb/breadcrumb.types.ts +9 -2
  222. package/src/components/breadcrumb/components/breadcrumb-item/breadcrumb-item.component.tsx +2 -0
  223. package/src/components/breadcrumb/components/breadcrumb-item/breadcrumb-item.types.ts +1 -5
  224. package/src/components/button/button.component.tsx +2 -0
  225. package/src/components/button/button.styles.ts +5 -5
  226. package/src/components/button/button.types.ts +23 -2
  227. package/src/components/button-dropdown/button-dropdown.component.tsx +2 -0
  228. package/src/components/button-dropdown/button-dropdown.styles.ts +1 -0
  229. package/src/components/button-dropdown/button-dropdown.types.ts +7 -2
  230. package/src/components/button-dropdown/components/panel/panel.component.tsx +3 -0
  231. package/src/components/button-group/button-group.component.tsx +2 -0
  232. package/src/components/checkbox-group/checkbox-group.component.tsx +2 -0
  233. package/src/components/checkbox-group/components/checkbox/checkbox.component.tsx +17 -7
  234. package/src/components/circle/circle.types.ts +1 -5
  235. package/src/components/collapsible/collapsible.component.tsx +2 -0
  236. package/src/components/collapsible/collapsible.styles.ts +1 -1
  237. package/src/components/compacta/compacta.component.tsx +17 -13
  238. package/src/components/compacta/compacta.styles.ts +10 -10
  239. package/src/components/date-picker/date-picker.component.tsx +2 -0
  240. package/src/components/date-picker/date-picker.types.ts +7 -2
  241. package/src/components/error-message/error-message.types.ts +1 -5
  242. package/src/components/field/field.component.tsx +2 -0
  243. package/src/components/field/field.types.ts +0 -4
  244. package/src/components/flexi-cell/components/flexi-cell-adornment/flexi-cell-adornment.component.tsx +1 -0
  245. package/src/components/flexi-cell/components/flexi-cell-adornment/flexi-cell-adornment.types.ts +1 -5
  246. package/src/components/flexi-cell/components/flexi-cell-body/flexi-cell-body.component.tsx +1 -0
  247. package/src/components/flexi-cell/components/flexi-cell-body/flexi-cell-body.types.ts +1 -5
  248. package/src/components/flexi-cell/components/flexi-cell-button/flexi-cell-button.component.tsx +1 -0
  249. package/src/components/flexi-cell/components/flexi-cell-circle/flexi-cell-circle.component.tsx +1 -0
  250. package/src/components/flexi-cell/components/flexi-cell-footer/flexi-cell-footer.component.tsx +1 -0
  251. package/src/components/flexi-cell/components/flexi-cell-hint/flexi-cell-hint.component.tsx +1 -0
  252. package/src/components/flexi-cell/components/flexi-cell-hint/flexi-cell-hint.types.ts +1 -5
  253. package/src/components/flexi-cell/components/flexi-cell-label/flexi-cell-label.component.tsx +1 -0
  254. package/src/components/flexi-cell/components/flexi-cell-label/flexi-cell-label.types.ts +1 -5
  255. package/src/components/flexi-cell/flexi-cell.component.tsx +2 -0
  256. package/src/components/flexi-cell/flexi-cell.types.ts +1 -7
  257. package/src/components/form/components/form-chit-chat/form-chit-chat.types.ts +1 -5
  258. package/src/components/form/components/form-group/form-group.types.ts +1 -5
  259. package/src/components/form/components/form-section/form-section.types.ts +7 -2
  260. package/src/components/form/form.component.tsx +2 -0
  261. package/src/components/form/form.types.ts +9 -0
  262. package/src/components/form-hint/form-hint.types.ts +1 -5
  263. package/src/components/form-label/form-label.types.ts +8 -3
  264. package/src/components/grid/components/container/container.types.ts +1 -5
  265. package/src/components/grid/components/item/item.types.ts +11 -2
  266. package/src/components/grid/grid.types.ts +1 -5
  267. package/src/components/icon/components/credit-cards-icon.tsx +43 -0
  268. package/src/components/icon/components/exit-icon.tsx +2 -2
  269. package/src/components/icon/components/office-icon.tsx +30 -11
  270. package/src/components/icon/components/pay-to-icon.tsx +33 -0
  271. package/src/components/icon/components/tiles-icon.tsx +43 -0
  272. package/src/components/icon/icon.styles.ts +1 -1
  273. package/src/components/icon/icon.types.ts +11 -1
  274. package/src/components/icon/index.ts +3 -6
  275. package/src/components/input/input.component.tsx +2 -0
  276. package/src/components/input/input.styles.ts +1 -1
  277. package/src/components/input/input.types.ts +12 -2
  278. package/src/components/input-field/components/add-ons/add-ons.component.tsx +3 -0
  279. package/src/components/input-field/components/add-ons/components/default-add-on/default-add-on.component.tsx +3 -0
  280. package/src/components/input-field/components/add-ons/components/default-add-on/default-add-on.types.ts +1 -4
  281. package/src/components/input-field/components/add-ons/components/icon-add-on/icon-add-on.component.tsx +3 -0
  282. package/src/components/input-field/components/add-ons/components/icon-add-on/icon-add-on.types.ts +1 -4
  283. package/src/components/input-field/components/add-ons/components/text-add-on/text-add-on.component.tsx +3 -0
  284. package/src/components/input-field/components/add-ons/components/text-add-on/text-add-on.types.ts +1 -4
  285. package/src/components/input-field/components/supporting-text/supporting-text.component.tsx +3 -0
  286. package/src/components/input-field/components/supporting-text/supporting-text.types.ts +1 -5
  287. package/src/components/input-field/input-field.component.tsx +2 -0
  288. package/src/components/input-field/input-field.scenarios.stories.tsx +2 -2
  289. package/src/components/input-field/input-field.types.ts +1 -4
  290. package/src/components/link/link.component.tsx +2 -0
  291. package/src/components/list/list.component.tsx +2 -0
  292. package/src/components/modal/components/backdrop/backdrop.types.ts +1 -5
  293. package/src/components/modal/components/dialog/components/dialog-body/dialog-body.types.ts +1 -4
  294. package/src/components/modal/components/dialog/components/dialog-footer/dialog-footer.types.ts +1 -4
  295. package/src/components/modal/components/dialog/dialog.types.ts +7 -2
  296. package/src/components/modal/modal.component.tsx +2 -0
  297. package/src/components/pagination/components/pagination-item/pagination-item.component.tsx +2 -1
  298. package/src/components/pagination/components/pagination-item/pagination-item.styles.ts +7 -3
  299. package/src/components/pagination/components/pagination-item/pagination-item.types.ts +20 -3
  300. package/src/components/pagination/pagination.component.tsx +3 -0
  301. package/src/components/pagination/pagination.stories.tsx +1 -1
  302. package/src/components/pagination/pagination.styles.ts +1 -1
  303. package/src/components/pagination/pagination.types.ts +0 -3
  304. package/src/components/pictogram/pictogram.types.ts +1 -4
  305. package/src/components/popover/popover.component.tsx +2 -0
  306. package/src/components/progress-bar/progress-bar.component.tsx +2 -0
  307. package/src/components/progress-rope/components/progress-rope-group-step/progress-rope-group-step.types.ts +2 -4
  308. package/src/components/progress-rope/components/progress-rope-step/progress-rope-step.types.ts +10 -1
  309. package/src/components/progress-rope/progress-rope.component.tsx +2 -0
  310. package/src/components/progress-rope/progress-rope.types.ts +1 -5
  311. package/src/components/radio-group/components/radio/radio.component.tsx +1 -0
  312. package/src/components/radio-group/components/radio/radio.styles.ts +2 -2
  313. package/src/components/radio-group/radio-group.component.tsx +2 -0
  314. package/src/components/repeater/repeater.component.tsx +6 -2
  315. package/src/components/repeater/repeater.styles.ts +2 -2
  316. package/src/components/select/select.component.tsx +2 -0
  317. package/src/components/select/select.styles.ts +1 -1
  318. package/src/components/select/select.types.ts +12 -1
  319. package/src/components/selector/components/selector-checkbox-group/components/selector-checkbox-group-option/selector-checkbox-group-option.types.ts +0 -4
  320. package/src/components/selector/components/selector-checkbox-group/selector-checkbox-group.types.ts +0 -4
  321. package/src/components/selector/components/selector-radio-group/components/selector-radio-group-option/selector-radio-group-option.types.ts +0 -4
  322. package/src/components/selector/components/selector-radio-group/selector-radio-group.types.ts +7 -2
  323. package/src/components/selector/selector.component.tsx +2 -0
  324. package/src/components/skip-link/skip-link.component.tsx +2 -0
  325. package/src/components/skip-link/skip-link.types.ts +0 -4
  326. package/src/components/switch/switch.component.tsx +2 -0
  327. package/src/components/switch/switch.types.ts +8 -3
  328. package/src/components/symbol/index.ts +1 -0
  329. package/src/components/symbol/symbol.stories.tsx +66 -8
  330. package/src/components/symbol/symbol.types.ts +1 -4
  331. package/src/components/table/table.component.tsx +2 -0
  332. package/src/components/tabs/components/tab/tab.types.ts +15 -2
  333. package/src/components/tabs/components/tab-panel/tab-panel.component.tsx +1 -0
  334. package/src/components/tabs/components/tab-panel/tab-panel.types.ts +6 -1
  335. package/src/components/tabs/tabs.component.tsx +2 -0
  336. package/src/components/tabs/tabs.stories.tsx +0 -1
  337. package/src/components/tabs/tabs.types.ts +37 -24
  338. package/src/components/textarea/textarea.component.tsx +2 -0
  339. package/src/components/textarea/textarea.styles.ts +1 -1
  340. package/src/components/textarea/textarea.types.ts +12 -1
  341. package/src/components/visually-hidden/visually-hidden.types.ts +1 -5
  342. package/src/components/well/well.types.tsx +7 -2
  343. package/src/index.ts +1 -0
  344. package/src/stories/foundation/colours.stories.tsx +0 -1
  345. package/src/types/component-props.types.ts +3 -0
  346. package/src/types/index.ts +1 -0
  347. package/utils/build-icons/index.ts +5 -2
  348. package/dist/components/icon/components/bom-logo-icon.d.ts +0 -2
  349. package/dist/components/icon/components/bom-logo-icon.js +0 -86
  350. package/dist/components/icon/components/bsa-logo-icon.d.ts +0 -2
  351. package/dist/components/icon/components/bsa-logo-icon.js +0 -32
  352. package/dist/components/icon/components/rams-logo-icon.d.ts +0 -2
  353. package/dist/components/icon/components/rams-logo-icon.js +0 -120
  354. package/dist/components/icon/components/stg-logo-icon.d.ts +0 -2
  355. package/dist/components/icon/components/stg-logo-icon.js +0 -44
  356. package/dist/components/icon/components/wbc-logo-icon.d.ts +0 -2
  357. package/dist/components/icon/components/wbc-logo-icon.js +0 -26
  358. package/dist/components/icon/components/wbg-logo-icon.d.ts +0 -2
  359. package/dist/components/icon/components/wbg-logo-icon.js +0 -29
  360. package/src/components/icon/components/bom-logo-icon.tsx +0 -40
  361. package/src/components/icon/components/bsa-logo-icon.tsx +0 -28
  362. package/src/components/icon/components/rams-logo-icon.tsx +0 -71
  363. package/src/components/icon/components/stg-logo-icon.tsx +0 -44
  364. package/src/components/icon/components/wbc-logo-icon.tsx +0 -20
  365. package/src/components/icon/components/wbg-logo-icon.tsx +0 -24
package/dist/index.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export * from './components/index.js';
2
+ export * from './types/index.js';
package/dist/index.js CHANGED
@@ -1 +1,2 @@
1
1
  export * from './components/index.js';
2
+ export * from './types/index.js';
@@ -261,7 +261,6 @@ export const BrandColors = {
261
261
  'background',
262
262
  'border',
263
263
  'borderDark',
264
- 'focus',
265
264
  'heading',
266
265
  'hero',
267
266
  'light',
@@ -0,0 +1,2 @@
1
+ import { ComponentDoc } from 'react-docgen-typescript';
2
+ export type ComponentProps = ComponentDoc;
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1 @@
1
+ export * from './component-props.types.js';
@@ -0,0 +1 @@
1
+ export * from './component-props.types.js';
@@ -0,0 +1,85 @@
1
+ const fs = require('fs');
2
+ const path = require('path');
3
+
4
+ const { glob } = require('glob');
5
+ const docgen = require('react-docgen-typescript');
6
+
7
+ const components = path.join('src', 'components', '**/*.component.tsx');
8
+ const outputFolder = path.join((process.cwd(), 'dist'));
9
+ const outputFile = path.join(outputFolder, 'component-type.json');
10
+
11
+ const tsConfigParser = docgen.withCustomConfig('./tsconfig.json', {
12
+ propFilter: {
13
+ skipPropsWithName: ['className', 'key'],
14
+ },
15
+ skipChildrenPropWithoutDoc: false,
16
+ savePropValueAsString: true,
17
+ shouldRemoveUndefinedFromOptional: true,
18
+ });
19
+
20
+ const TYPES_TO_BE_IGNORED = [
21
+ 'DOMAttributes',
22
+ 'HTMLAttributes',
23
+ 'AriaAttributes',
24
+ 'SVGAttributes',
25
+ 'TextareaHTMLAttributes',
26
+ ];
27
+
28
+ (async () => {
29
+ const results = await glob(components);
30
+
31
+ const data = Object.fromEntries(
32
+ tsConfigParser.parse(results).reduce((acc, { displayName, description, props, tags }) => {
33
+ /**
34
+ * Some components should not be scanned since it is a internal component
35
+ * so the comment @private is used in order to skip some components.
36
+ */
37
+ if (tags.private !== undefined) {
38
+ return acc;
39
+ }
40
+
41
+ return [
42
+ ...acc,
43
+ [
44
+ displayName,
45
+ {
46
+ displayName,
47
+ description,
48
+ // Sort the required props before the non-required props, then sort alphabetically
49
+ props: Object.fromEntries(
50
+ Object.values(props)
51
+ .sort((a, b) => {
52
+ if (a.required !== b.required) {
53
+ if (a.required) return -1;
54
+ return 1;
55
+ }
56
+ return a.name.localeCompare(b.name);
57
+ })
58
+ .filter(a => {
59
+ if (a.name === 'children' && a.description) {
60
+ return true;
61
+ }
62
+ if (TYPES_TO_BE_IGNORED.includes(a.parent ? a.parent.name : '')) {
63
+ return false;
64
+ }
65
+ return true;
66
+ })
67
+ .map(a => {
68
+ if (a.name === 'tag' && a.type.name.indexOf('more ...') !== -1) {
69
+ return [a.name, { ...a, type: { ...a.type, name: 'keyof IntrinsicElements' } }];
70
+ }
71
+ return [a.name, a];
72
+ }),
73
+ ),
74
+ },
75
+ ],
76
+ ];
77
+ }, []),
78
+ );
79
+
80
+ // Create the output folder if it doesn't exist
81
+ if (!fs.existsSync(outputFolder)) fs.mkdirSync(outputFolder);
82
+
83
+ // Write the output from react-docgen-typescript to the output file
84
+ fs.writeFileSync(outputFile, JSON.stringify(data));
85
+ })();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@westpac/ui",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -16,6 +16,9 @@
16
16
  ".": {
17
17
  "default": "./dist/index.js"
18
18
  },
19
+ "./component-type.json": {
20
+ "default": "./dist/component-type.json"
21
+ },
19
22
  "./css": {
20
23
  "default": "./dist/css/westpac-ui.min.css"
21
24
  },
@@ -44,6 +47,7 @@
44
47
  "!**/*.{test,spec}.{ts,tsx,js,jsx}"
45
48
  ],
46
49
  "devDependencies": {
50
+ "@react-types/tabs": "~3.3.0",
47
51
  "@react-types/accordion": "3.0.0-alpha.14",
48
52
  "@react-types/combobox": "~3.7.0",
49
53
  "@react-types/shared": "~3.18.1",
@@ -84,6 +88,7 @@
84
88
  "prettier": "^2.8.4",
85
89
  "prop-types": "^15.8.1",
86
90
  "react": "^18.2.0",
91
+ "react-docgen-typescript": "~2.2.2",
87
92
  "react-dom": "^18.2.0",
88
93
  "shx": "^0.3.4",
89
94
  "storybook": "^7.0.21",
@@ -93,21 +98,20 @@
93
98
  "ts-node": "~10.9.1",
94
99
  "typescript": "^5.1.6",
95
100
  "vite": "^4.3.4",
96
- "vitest": "^0.30.1"
101
+ "vitest": "^0.30.1",
102
+ "@westpac/eslint-config": "~0.1.0",
103
+ "@westpac/test-config": "~0.0.0",
104
+ "@westpac/ts-config": "~0.0.0"
97
105
  },
98
106
  "dependencies": {
99
107
  "@duetds/date-picker": "~1.4.0",
100
108
  "@react-aria/accordion": "3.0.0-alpha.19",
101
109
  "@react-aria/utils": "~3.18.0",
102
110
  "@react-spectrum/utils": "~3.10.0",
103
- "@react-types/tabs": "~3.3.0",
104
111
  "clsx": "^1.2.1",
105
112
  "framer-motion": "~10.12.16",
106
113
  "react-aria": "~3.25.0",
107
- "react-stately": "~3.23.0",
108
- "@westpac/eslint-config": "~0.1.0",
109
- "@westpac/test-config": "~0.0.0",
110
- "@westpac/ts-config": "~0.0.0"
114
+ "react-stately": "~3.23.0"
111
115
  },
112
116
  "overrides": {
113
117
  "react-aria": {
@@ -132,7 +136,8 @@
132
136
  "build:esm": "swc ./src -d dist --no-swcrc --config-file .swcrc",
133
137
  "build:icons": "ts-node --esm ./utils/build-icons/index.ts",
134
138
  "build:watch": "pnpm clean && pnpm build:types && pnpm build:esm -w && pnpm build:css:all",
135
- "build": "pnpm clean && pnpm build:types && pnpm build:esm && pnpm build:css:all",
139
+ "build:type-table": "node generate-component-types.cjs",
140
+ "build": "pnpm clean && pnpm build:types && pnpm build:esm && pnpm build:css:all && pnpm build:type-table",
136
141
  "check-types": "tsc --noemit --emitDeclarationOnly false",
137
142
  "lint": "eslint \"./src/**/*.{ts,tsx,js,jsx}\"",
138
143
  "lint:fix": "eslint \"./src/**/*.{ts,tsx,js,jsx}\" --fix",
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import { useAccordion } from '@react-aria/accordion';
2
4
  import { filterDOMProps } from '@react-aria/utils';
3
5
  import { useDOMRef } from '@react-spectrum/utils';
@@ -9,7 +11,7 @@ import { type AccordionProps } from './accordion.types.js';
9
11
  import { AccordionItem } from './components/index.js';
10
12
 
11
13
  function Accordion<T extends object>(
12
- { className, color, rounded = true, look = 'default', ...props }: AccordionProps<T>,
14
+ { className, rounded = true, look = 'soft', ...props }: AccordionProps<T>,
13
15
  ref: any,
14
16
  ) {
15
17
  // react-aria doesn't allow for now to use component children when there is multiple levels
@@ -33,15 +35,10 @@ function Accordion<T extends object>(
33
35
  const { accordionProps } = useAccordion(finalProps, state, domRef);
34
36
 
35
37
  return (
36
- <div
37
- {...filterDOMProps(finalProps)}
38
- {...accordionProps}
39
- ref={domRef}
40
- className={styles({ className, rounded, look })}
41
- >
38
+ <div {...filterDOMProps(finalProps)} {...accordionProps} ref={domRef} className={styles({ className, rounded })}>
42
39
  <div className="mt-[-1px]">
43
40
  {[...state.collection].map(item => (
44
- <AccordionItem<T> key={item.key} item={item} state={state} color={color} look={look} />
41
+ <AccordionItem<T> key={item.key} item={item} state={state} look={look} />
45
42
  ))}
46
43
  </div>
47
44
  </div>
@@ -1,7 +1,7 @@
1
1
  import { type Meta, StoryFn, type StoryObj } from '@storybook/react';
2
2
  import { Key, useState } from 'react';
3
3
 
4
- import { Button } from '../index.js';
4
+ import { Button, Tabs } from '../index.js';
5
5
 
6
6
  import { Accordion } from './accordion.component.js';
7
7
 
@@ -35,7 +35,6 @@ type Story = StoryObj<typeof meta>;
35
35
  export const Default: Story = {
36
36
  args: {
37
37
  rounded: true,
38
- color: undefined,
39
38
  children: [
40
39
  { key: 'files', title: 'My files' },
41
40
  { key: 'shared', title: 'Shared with us' },
@@ -54,35 +53,11 @@ export const Default: Story = {
54
53
  };
55
54
 
56
55
  /**
57
- * > Primary color usage example
56
+ * > Lego look using Hero color
58
57
  */
59
- export const PrimaryColor: Story = {
58
+ export const LegoLook: Story = {
60
59
  args: {
61
- color: 'primary',
62
- rounded: false,
63
- },
64
- render: ({ ...props }) => (
65
- <Accordion {...props}>
66
- {[
67
- { key: 'colors', title: 'Your colors' },
68
- { key: 'shared', title: 'Shared color' },
69
- { key: 'last', title: 'Last item' },
70
- ].map(({ key, title }) => (
71
- <Accordion.Item key={key} title={title}>
72
- <p>{title}</p>
73
- <Button>Test</Button>
74
- </Accordion.Item>
75
- ))}
76
- </Accordion>
77
- ),
78
- };
79
-
80
- /**
81
- * > Hero color usage example
82
- */
83
- export const HeroColor: Story = {
84
- args: {
85
- color: 'hero',
60
+ look: 'lego',
86
61
  rounded: false,
87
62
  },
88
63
  render: ({ ...props }) => (
@@ -104,9 +79,9 @@ export const HeroColor: Story = {
104
79
  /**
105
80
  * > Controlled example
106
81
  */
107
- export const ControlledColor: Story = {
82
+ export const Controlled: Story = {
108
83
  args: {
109
- color: 'hero',
84
+ look: 'lego',
110
85
  rounded: false,
111
86
  },
112
87
  render: ({ ...props }) => {
@@ -133,3 +108,37 @@ export const ControlledColor: Story = {
133
108
  );
134
109
  },
135
110
  };
111
+
112
+ /**
113
+ * > Example showing how you can use styling to change accordion to tabs responsively.
114
+ * > Replicates GEL Tabcordion functionality.
115
+ * NOTE: Due to how items work the Accordion.Item that are children of Tabs should be Tab.Panel but can't due to name sharing on this page.
116
+ * See the source of this example in, https://github.com/WestpacGEL/GEL-next/blob/main/packages/ui/src/components/accordion/accordion.stories.tsx#L142
117
+ */
118
+ export const Responsive: Story = {
119
+ render: ({ ...props }) => {
120
+ const data = [
121
+ { key: 'files', title: 'First Item', content: 'First Accordion content...' },
122
+ { key: 'shared', title: 'Second Item', content: 'Second Accordion content...' },
123
+ { key: 'last', title: 'Third Item', content: 'Third Accordion content...' },
124
+ ];
125
+ return (
126
+ <>
127
+ <Accordion {...props} className="sm:hidden">
128
+ {data.map(({ key, title, content }) => (
129
+ <Accordion.Item key={key} title={title}>
130
+ <p>{content}</p>
131
+ </Accordion.Item>
132
+ ))}
133
+ </Accordion>
134
+ <Tabs className="max-sm:hidden">
135
+ {data.map(({ key, title, content }) => (
136
+ <Tabs.Panel key={key} title={title}>
137
+ <p>{content}</p>
138
+ </Tabs.Panel>
139
+ ))}
140
+ </Tabs>
141
+ </>
142
+ );
143
+ },
144
+ };
@@ -2,15 +2,11 @@ import { tv } from 'tailwind-variants';
2
2
 
3
3
  export const styles = tv(
4
4
  {
5
- base: 'flex flex-col',
5
+ base: 'flex flex-col border border-border text-text',
6
6
  variants: {
7
7
  rounded: {
8
8
  true: 'overflow-hidden rounded',
9
9
  },
10
- look: {
11
- material: '',
12
- default: 'border border-border',
13
- },
14
10
  },
15
11
  },
16
12
  { responsiveVariants: ['xsl', 'sm', 'md', 'lg', 'xl'] },
@@ -5,14 +5,18 @@ import { type VariantProps } from 'tailwind-variants';
5
5
  import { styles } from './accordion.styles.js';
6
6
  import { AccordionItemProps } from './components/index.js';
7
7
 
8
- export type AccordionProps<T = any> = SpectrumAccordionProps<T> &
9
- VariantProps<typeof styles> & {
10
- /**
11
- * Accordion colors
12
- */
13
- color?: AccordionItemProps['color'];
14
- /**
15
- * Stretch the tab to fill the whole content
16
- */
17
- justify?: boolean;
18
- } & Omit<HTMLAttributes<HTMLDivElement>, 'color'>;
8
+ type Variants = VariantProps<typeof styles>;
9
+ export type AccordionProps<T = any> = SpectrumAccordionProps<T> & {
10
+ /**
11
+ * Stretch the tab to fill the whole content
12
+ */
13
+ justify?: boolean;
14
+ /**
15
+ * The look of the accordion
16
+ */
17
+ look?: AccordionItemProps['look'];
18
+ /**
19
+ * Whether the accordion is rounded
20
+ */
21
+ rounded?: Variants['rounded'];
22
+ } & Omit<HTMLAttributes<HTMLDivElement>, 'color'>;
@@ -13,8 +13,7 @@ const loadAnimations = () => import('./accordion-item.utils.js').then(res => res
13
13
  export function AccordionItem<T = any>({
14
14
  className,
15
15
  tag: Tag = 'div',
16
- color,
17
- look = 'default',
16
+ look = 'soft',
18
17
  ...props
19
18
  }: AccordionItemProps<T>) {
20
19
  const ref = useRef<HTMLButtonElement>(null);
@@ -25,10 +24,10 @@ export function AccordionItem<T = any>({
25
24
  const isDisabled = state.disabledKeys.has(item.key);
26
25
  const { hoverProps } = useHover({ isDisabled });
27
26
  const { direction } = useLocale();
28
- const styles = accordionItemStyles({ isOpen, isDisabled, className, color, look, isFocusVisible });
27
+ const styles = accordionItemStyles({ isOpen, isDisabled, look, isFocusVisible });
29
28
 
30
29
  return (
31
- <Tag className={styles.base()}>
30
+ <Tag className={styles.base({ className })}>
32
31
  {/*
33
32
  Using h3 tag since the official page is using it, also the react-spectrum
34
33
  https://www.w3.org/WAI/ARIA/apg/patterns/accordion/examples/accordion/
@@ -36,13 +35,11 @@ export function AccordionItem<T = any>({
36
35
  <h3>
37
36
  <button {...mergeProps(buttonProps, hoverProps, focusProps)} ref={ref} className={styles.itemHeader()}>
38
37
  <span>{item.props.title}</span>
39
- {look === 'material' && <div aria-hidden="true" className={styles.indicator()} />}
40
- {look === 'default' &&
41
- (direction === 'ltr' ? (
42
- <ArrowRightIcon aria-hidden="true" className={styles.indicator()} />
43
- ) : (
44
- <ArrowLeftIcon aria-hidden="true" className={styles.indicator()} />
45
- ))}
38
+ {direction === 'ltr' ? (
39
+ <ArrowRightIcon aria-hidden="true" className={styles.indicator()} />
40
+ ) : (
41
+ <ArrowLeftIcon aria-hidden="true" className={styles.indicator()} />
42
+ )}
46
43
  </button>
47
44
  </h3>
48
45
  <div {...regionProps}>
@@ -50,19 +47,17 @@ export function AccordionItem<T = any>({
50
47
  <AnimatePresence initial={false}>
51
48
  {isOpen && (
52
49
  <m.div
50
+ className="overflow-hidden"
53
51
  initial={{
54
52
  height: 0,
55
- opacity: 0,
56
53
  }}
57
54
  animate={{
58
55
  height: 'auto',
59
- opacity: 1,
60
56
  }}
61
57
  exit={{
62
58
  height: 0,
63
- opacity: 0,
64
59
  }}
65
- transition={{ duration: 0.2, ease: 'easeInOut' }}
60
+ transition={{ duration: 0.3, ease: [0.25, 0.1, 0.25, 1.0] }}
66
61
  >
67
62
  <div className={styles.content()}>{item.props.children}</div>
68
63
  </m.div>
@@ -73,3 +68,4 @@ export function AccordionItem<T = any>({
73
68
  </Tag>
74
69
  );
75
70
  }
71
+ AccordionItem.displayName = 'Accordion.Item';
@@ -3,29 +3,18 @@ import { tv } from 'tailwind-variants';
3
3
  export const styles = tv(
4
4
  {
5
5
  slots: {
6
- base: '',
6
+ base: 'relative',
7
7
  itemHeader: 'typography-body-9 flex w-full items-center justify-between px-3 py-2',
8
- indicator: '',
8
+ indicator: 'h-3 w-3 rotate-90',
9
9
  content: 'hidden',
10
10
  },
11
11
  variants: {
12
12
  look: {
13
- material: {
14
- itemHeader: 'bg-white transition-colors hover:bg-light',
15
- indicator:
16
- 'relative h-2 w-2 before:absolute before:left-1/2 before:top-1/2 before:block before:h-[2px] before:w-full before:-translate-x-1/2 before:-translate-y-1/2 before:bg-muted after:absolute after:left-1/2 after:top-1/2 after:block after:h-full after:w-[2px] after:-translate-x-1/2 after:-translate-y-1/2 after:bg-muted after:transition-transform',
17
- },
18
- default: {
13
+ soft: {
19
14
  itemHeader: 'border-t border-border bg-light',
20
- indicator: 'h-3 w-3 rotate-90 transition-transform',
21
- },
22
- },
23
- color: {
24
- hero: {
25
- itemHeader: 'border-l-[0.375rem] border-l-border transition-colors',
26
15
  },
27
- primary: {
28
- itemHeader: 'border-l-[0.375rem] border-l-border transition-colors',
16
+ lego: {
17
+ itemHeader: 'border-l-[0.375rem] border-t border-border bg-light transition-colors',
29
18
  },
30
19
  },
31
20
  isOpen: {
@@ -52,36 +41,18 @@ export const styles = tv(
52
41
  compoundSlots: [
53
42
  {
54
43
  slots: ['indicator'],
55
- look: 'default',
56
44
  isOpen: true,
57
45
  className: '-rotate-90',
58
46
  },
59
- {
60
- slots: ['indicator'],
61
- look: 'material',
62
- isOpen: true,
63
- className: 'after:rotate-90',
64
- },
65
47
  {
66
48
  slots: ['itemHeader'],
67
- color: 'primary',
68
- isOpen: true,
69
- className: 'border-l-primary',
70
- },
71
- {
72
- slots: ['itemHeader'],
73
- color: 'hero',
49
+ look: 'lego',
74
50
  isOpen: true,
75
51
  className: 'border-l-hero',
76
52
  },
77
53
  {
78
54
  slots: ['content'],
79
- color: 'hero',
80
- className: 'border-l-[0.375rem] border-l-border',
81
- },
82
- {
83
- slots: ['content'],
84
- color: 'primary',
55
+ look: 'lego',
85
56
  className: 'border-l-[0.375rem] border-l-border',
86
57
  },
87
58
  ],
@@ -4,11 +4,17 @@ import { type VariantProps } from 'tailwind-variants';
4
4
 
5
5
  import { styles } from './accordion-item.styles.js';
6
6
 
7
+ type Variants = VariantProps<typeof styles>;
8
+
7
9
  export type AccordionItemProps<T = any> = {
8
10
  /**
9
11
  * Node from react-stately
10
12
  */
11
13
  item: Node<T>;
14
+ /**
15
+ * Look of the item
16
+ */
17
+ look?: Variants['look'];
12
18
  /**
13
19
  * Tree state
14
20
  */
@@ -17,5 +23,4 @@ export type AccordionItemProps<T = any> = {
17
23
  * Tag to render
18
24
  */
19
25
  tag?: keyof JSX.IntrinsicElements;
20
- } & VariantProps<typeof styles> &
21
- HTMLAttributes<Element>;
26
+ } & HTMLAttributes<Element>;
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import { AnimatePresence, LazyMotion, m } from 'framer-motion';
2
4
  import React, { useCallback, useEffect, useState } from 'react';
3
5
 
@@ -3,9 +3,9 @@ import { tv } from 'tailwind-variants';
3
3
  export const styles = tv(
4
4
  {
5
5
  slots: {
6
- base: 'typography-body-10 relative mb-4 xsl:flex',
7
- icon: 'float-left mr-1 flex-none xsl:mr-2',
8
- body: 'relative flex-1 xsl:top-[0.125rem] [&_a]:underline',
6
+ base: 'typography-body-10 xsl:flex relative mb-4',
7
+ icon: 'xsl:mr-2 float-left mr-1 flex-none',
8
+ body: 'xsl:top-[0.125rem] relative flex-1 overflow-hidden [&_a]:underline',
9
9
  heading: 'typography-body-9 mb-2 font-bold',
10
10
  close: 'absolute right-[0.1875rem] top-[0.1875rem] p-1 hover:opacity-[0.8]',
11
11
  },
@@ -1,7 +1,4 @@
1
1
  import { HTMLAttributes } from 'react';
2
- import { type VariantProps } from 'tailwind-variants';
3
-
4
- import { styles } from './alert.styles.js';
5
2
 
6
3
  export type Look = 'info' | 'success' | 'warning' | 'danger' | 'system';
7
4
 
@@ -44,5 +41,4 @@ export type AlertProps = {
44
41
  * Tag to render
45
42
  */
46
43
  tag?: keyof JSX.IntrinsicElements;
47
- } & VariantProps<typeof styles> &
48
- HTMLAttributes<Element>;
44
+ } & HTMLAttributes<Element>;
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import { useButton, useComboBox, useFilter, useSearchField } from 'react-aria';
3
5
  import { Item, useComboBoxState, useSearchFieldState } from 'react-stately';
@@ -8,6 +8,8 @@ import { FormHintProps } from '../index.js';
8
8
  import { styles } from './autocomplete.styles.js';
9
9
  import { PopoverProps } from './components/index.js';
10
10
 
11
+ type Variants = VariantProps<typeof styles>;
12
+
11
13
  export type AutocompleteProps<T extends object> = {
12
14
  /**
13
15
  * error message
@@ -21,10 +23,21 @@ export type AutocompleteProps<T extends object> = {
21
23
  * hint message
22
24
  */
23
25
  hintMessage?: FormHintProps['children'];
26
+ /**
27
+ * Whether autocomplete is invalid
28
+ */
29
+ invalid?: Variants['invalid'];
30
+ /**
31
+ * Whether autocomplete is disabled
32
+ */
33
+ isDisabled?: Variants['isDisabled'];
24
34
  /**
25
35
  * Element where the popover will be rendered, by default it will be into the body
26
36
  */
27
37
  portalContainer?: PopoverProps['portalContainer'];
28
- } & VariantProps<typeof styles> &
29
- ComboBoxProps<T> &
38
+ /**
39
+ * Size of autocomplete
40
+ */
41
+ size?: Variants['size'];
42
+ } & ComboBoxProps<T> &
30
43
  AriaLabelingProps;
@@ -10,6 +10,9 @@ interface OptionProps<T = any> {
10
10
  state: ListState<T>;
11
11
  }
12
12
 
13
+ /**
14
+ * @private
15
+ */
13
16
  export function Option({ item, state }: OptionProps) {
14
17
  const ref = React.useRef<HTMLLIElement>(null);
15
18
 
@@ -5,6 +5,9 @@ import { Option } from '../list-box-option/index.js';
5
5
 
6
6
  import { type ListBoxSectionProps } from './list-box-section.types.js';
7
7
 
8
+ /**
9
+ * @private
10
+ */
8
11
  export function ListBoxSection({ section, state }: ListBoxSectionProps) {
9
12
  const { itemProps, headingProps, groupProps } = useListBoxSection({
10
13
  heading: section.rendered,
@@ -4,6 +4,9 @@ import { useListBox } from 'react-aria';
4
4
  import { ListBoxSection, Option } from './components/index.js';
5
5
  import { ListBoxProps } from './list-box.types.js';
6
6
 
7
+ /**
8
+ * @private
9
+ */
7
10
  export function ListBox(props: ListBoxProps) {
8
11
  const ref = React.useRef<HTMLUListElement>(null);
9
12
 
@@ -3,7 +3,9 @@ import * as React from 'react';
3
3
  import { DismissButton, Overlay, usePopover } from 'react-aria';
4
4
 
5
5
  import { PopoverProps } from './popover.types.js';
6
-
6
+ /**
7
+ * @private
8
+ */
7
9
  export function Popover(props: PopoverProps) {
8
10
  const ref = React.useRef<HTMLDivElement>(null);
9
11
  const { popoverRef = ref, state, children, className, isNonModal, portalContainer } = props;