@kaizen/components 0.0.0-canary-fix-select-futureselect-focus-jumping-20241003232256 → 0.0.0-canary-tsx-codemod-20241029235345

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 (411) hide show
  1. package/bin/codemod.sh +2 -2
  2. package/codemods/README.md +12 -4
  3. package/codemods/upgradeIconV1/getNewIconPropsFromOldIconName.ts +255 -0
  4. package/codemods/upgradeIconV1/index.ts +33 -0
  5. package/codemods/upgradeIconV1/transformCaMonogramIconToBrand.spec.ts +83 -0
  6. package/codemods/upgradeIconV1/transformCaMonogramIconToBrand.ts +53 -0
  7. package/codemods/upgradeIconV1/transformIcon.spec.ts +181 -0
  8. package/codemods/upgradeIconV1/transformIcon.ts +115 -0
  9. package/codemods/upgradeIconV1/transformSpinnerIconToLoadingSpinner.spec.ts +81 -0
  10. package/codemods/upgradeIconV1/transformSpinnerIconToLoadingSpinner.ts +41 -0
  11. package/codemods/upgradeIconV1/upgradeIconV1.spec.ts +306 -0
  12. package/codemods/upgradeIconV1/upgradeIconV1.ts +94 -0
  13. package/codemods/utils/createProp.spec.ts +83 -0
  14. package/codemods/utils/createProp.ts +51 -0
  15. package/codemods/utils/getKaioTagName.spec.ts +85 -0
  16. package/codemods/utils/getKaioTagName.ts +129 -0
  17. package/codemods/utils/index.ts +3 -1
  18. package/codemods/utils/transformComponentsInDir.ts +32 -16
  19. package/codemods/utils/transformSource.ts +10 -5
  20. package/codemods/utils/updateJsxElementWithNewProps.ts +4 -3
  21. package/codemods/utils/updateKaioImports.spec.ts +223 -0
  22. package/codemods/utils/updateKaioImports.ts +233 -0
  23. package/dist/cjs/Avatar/Avatar.cjs +16 -13
  24. package/dist/cjs/Calendar/CalendarRange/CalendarRange.cjs +9 -7
  25. package/dist/cjs/Calendar/CalendarSingle/CalendarSingle.cjs +9 -7
  26. package/dist/cjs/Calendar/LegacyCalendarRange/LegacyCalendarRange.cjs +9 -7
  27. package/dist/cjs/Checkbox/Checkbox/Checkbox.cjs +5 -11
  28. package/dist/cjs/ClearButton/ClearButton.cjs +5 -4
  29. package/dist/cjs/Collapsible/Collapsible/Collapsible.cjs +4 -7
  30. package/dist/cjs/DateInput/DateInputWithIconButton/DateInputWithIconButton.cjs +5 -4
  31. package/dist/cjs/DateRangePicker/DateRangePicker.cjs +5 -4
  32. package/dist/cjs/ErrorPage/ErrorPage.cjs +9 -7
  33. package/dist/cjs/FieldMessage/FieldMessage.cjs +5 -11
  34. package/dist/cjs/Filter/FilterBar/context/FilterBarContext.cjs +17 -2
  35. package/dist/cjs/Filter/FilterBar/context/reducer/filterBarStateReducer.cjs +4 -0
  36. package/dist/cjs/Filter/FilterBar/context/reducer/setupFilterBarState.cjs +2 -1
  37. package/dist/cjs/Filter/FilterBar/subcomponents/AddFiltersMenu/AddFiltersMenu.cjs +16 -6
  38. package/dist/cjs/Filter/FilterBar/subcomponents/FilterBarButton/FilterBarButton.cjs +12 -1
  39. package/dist/cjs/Filter/FilterBar/subcomponents/FilterBarMultiSelect/FilterBarMultiSelect.cjs +13 -2
  40. package/dist/cjs/Filter/FilterButton/FilterButton/FilterButton.cjs +4 -7
  41. package/dist/cjs/Filter/FilterButton/FilterButtonRemovable/FilterButtonRemovable.cjs +5 -5
  42. package/dist/cjs/Filter/FilterMultiSelect/FilterMultiSelect.cjs +4 -2
  43. package/dist/cjs/Filter/FilterMultiSelect/context/MenuTriggerProvider/MenuTriggerProvider.cjs +4 -2
  44. package/dist/cjs/Filter/FilterMultiSelect/subcomponents/MultiSelectOption/MultiSelectOption.cjs +4 -4
  45. package/dist/cjs/Filter/FilterSelect/FilterSelect.cjs +2 -1
  46. package/dist/cjs/GuidanceBlock/GuidanceBlock.cjs +5 -4
  47. package/dist/cjs/Illustration/utils/usePausePlay.cjs +5 -8
  48. package/dist/cjs/Input/InputSearch/InputSearch.cjs +4 -3
  49. package/dist/cjs/LikertScaleLegacy/LikertScaleLegacy.cjs +5 -6
  50. package/dist/cjs/Loading/LoadingSpinner/LoadingSpinner.cjs +6 -42
  51. package/dist/cjs/Loading/LoadingSpinner/LoadingSpinner.module.css.cjs +10 -0
  52. package/dist/cjs/Loading/LoadingSpinner/subcomponents/SpinnerIcon.cjs +80 -0
  53. package/dist/cjs/Modal/ConfirmationModal/ConfirmationModal.cjs +31 -26
  54. package/dist/cjs/Modal/GenericModal/subcomponents/ModalHeader/ModalHeader.cjs +4 -5
  55. package/dist/cjs/MultiSelect/subcomponents/Checkbox/Checkbox.cjs +7 -17
  56. package/dist/cjs/MultiSelect/subcomponents/MultiSelectToggle/MultiSelectToggle.cjs +4 -7
  57. package/dist/cjs/Notification/subcomponents/CancelButton/CancelButton.cjs +4 -3
  58. package/dist/cjs/Notification/subcomponents/NotificationIcon/NotificationIcon.cjs +33 -38
  59. package/dist/cjs/Notification/subcomponents/NotificationIcon/NotificationIcon.module.css.cjs +6 -0
  60. package/dist/cjs/Pagination/subcomponents/DirectionalLink/DirectionalLink.cjs +11 -19
  61. package/dist/cjs/Pagination/subcomponents/TruncateIndicator/TruncateIndicator.cjs +4 -5
  62. package/dist/cjs/Popover/Popover.cjs +5 -4
  63. package/dist/cjs/Popover/utils/classMappers.cjs +21 -16
  64. package/dist/cjs/RichTextEditor/RichTextEditor/utils/controlmap.cjs +29 -25
  65. package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.cjs +10 -12
  66. package/dist/cjs/Select/Select.cjs +8 -10
  67. package/dist/cjs/SplitButton/subcomponents/DropdownButton/DropdownButton.cjs +4 -4
  68. package/dist/cjs/Table/Table.cjs +11 -10
  69. package/dist/cjs/Tag/Tag.cjs +21 -17
  70. package/dist/cjs/TextArea/TextArea.cjs +20 -52
  71. package/dist/cjs/TextArea/TextArea.module.css.cjs +14 -0
  72. package/dist/cjs/TextField/TextField.cjs +7 -6
  73. package/dist/cjs/TextField/TextField.module.scss.cjs +4 -6
  74. package/dist/cjs/Tile/subcomponents/GenericTile/GenericTile.cjs +8 -7
  75. package/dist/cjs/TitleBlockZen/TitleBlockZen.cjs +9 -12
  76. package/dist/cjs/TitleBlockZen/subcomponents/MainActions.cjs +7 -7
  77. package/dist/cjs/TitleBlockZen/subcomponents/MobileActions.cjs +10 -15
  78. package/dist/cjs/TitleBlockZen/subcomponents/SecondaryActions.cjs +7 -7
  79. package/dist/cjs/ToggleSwitch/ToggleSwitch/ToggleSwitch.cjs +5 -5
  80. package/dist/cjs/Workflow/subcomponents/Footer/components/ProgressStepper/ProgressStepper.cjs +13 -18
  81. package/dist/cjs/__future__/Icon/Icon.cjs +47 -0
  82. package/dist/cjs/__future__/Icon/Icon.module.css.cjs +10 -0
  83. package/dist/cjs/__future__/Icon/constants.cjs +8 -0
  84. package/dist/cjs/__future__/Select/subcomponents/ListBox/ListBox.cjs +7 -10
  85. package/dist/cjs/__future__/Select/subcomponents/Option/Option.cjs +4 -5
  86. package/dist/cjs/__future__/Select/subcomponents/SelectToggle/SelectToggle.cjs +5 -9
  87. package/dist/cjs/__future__/Tabs/Tabs.cjs +23 -0
  88. package/dist/cjs/__future__/Tabs/subcomponents/Tab/Tab.cjs +39 -0
  89. package/dist/cjs/__future__/Tabs/subcomponents/Tab/Tab.module.css.cjs +7 -0
  90. package/dist/cjs/__future__/Tabs/subcomponents/TabList/TabList.cjs +31 -0
  91. package/dist/cjs/__future__/Tabs/subcomponents/TabList/TabList.module.css.cjs +7 -0
  92. package/dist/cjs/__future__/Tabs/subcomponents/TabPanel/TabPanel.cjs +24 -0
  93. package/dist/cjs/__future__/Tag/RemovableTag/subcomponents/RemoveButton.cjs +4 -3
  94. package/dist/cjs/future.cjs +10 -0
  95. package/dist/esm/Avatar/Avatar.mjs +16 -13
  96. package/dist/esm/Calendar/CalendarRange/CalendarRange.mjs +9 -7
  97. package/dist/esm/Calendar/CalendarSingle/CalendarSingle.mjs +9 -7
  98. package/dist/esm/Calendar/LegacyCalendarRange/LegacyCalendarRange.mjs +9 -7
  99. package/dist/esm/Checkbox/Checkbox/Checkbox.mjs +5 -11
  100. package/dist/esm/ClearButton/ClearButton.mjs +5 -4
  101. package/dist/esm/Collapsible/Collapsible/Collapsible.mjs +5 -8
  102. package/dist/esm/DateInput/DateInputWithIconButton/DateInputWithIconButton.mjs +5 -4
  103. package/dist/esm/DateRangePicker/DateRangePicker.mjs +5 -4
  104. package/dist/esm/ErrorPage/ErrorPage.mjs +10 -8
  105. package/dist/esm/FieldMessage/FieldMessage.mjs +6 -12
  106. package/dist/esm/Filter/FilterBar/context/FilterBarContext.mjs +17 -2
  107. package/dist/esm/Filter/FilterBar/context/reducer/filterBarStateReducer.mjs +4 -0
  108. package/dist/esm/Filter/FilterBar/context/reducer/setupFilterBarState.mjs +2 -1
  109. package/dist/esm/Filter/FilterBar/subcomponents/AddFiltersMenu/AddFiltersMenu.mjs +17 -7
  110. package/dist/esm/Filter/FilterBar/subcomponents/FilterBarButton/FilterBarButton.mjs +13 -2
  111. package/dist/esm/Filter/FilterBar/subcomponents/FilterBarMultiSelect/FilterBarMultiSelect.mjs +14 -3
  112. package/dist/esm/Filter/FilterButton/FilterButton/FilterButton.mjs +5 -8
  113. package/dist/esm/Filter/FilterButton/FilterButtonRemovable/FilterButtonRemovable.mjs +5 -5
  114. package/dist/esm/Filter/FilterMultiSelect/FilterMultiSelect.mjs +4 -2
  115. package/dist/esm/Filter/FilterMultiSelect/context/MenuTriggerProvider/MenuTriggerProvider.mjs +4 -2
  116. package/dist/esm/Filter/FilterMultiSelect/subcomponents/MultiSelectOption/MultiSelectOption.mjs +4 -4
  117. package/dist/esm/Filter/FilterSelect/FilterSelect.mjs +2 -1
  118. package/dist/esm/GuidanceBlock/GuidanceBlock.mjs +5 -4
  119. package/dist/esm/Illustration/utils/usePausePlay.mjs +5 -8
  120. package/dist/esm/Input/InputSearch/InputSearch.mjs +4 -3
  121. package/dist/esm/LikertScaleLegacy/LikertScaleLegacy.mjs +5 -6
  122. package/dist/esm/Loading/LoadingSpinner/LoadingSpinner.mjs +6 -42
  123. package/dist/esm/Loading/LoadingSpinner/LoadingSpinner.module.css.mjs +8 -0
  124. package/dist/esm/Loading/LoadingSpinner/subcomponents/SpinnerIcon.mjs +72 -0
  125. package/dist/esm/Modal/ConfirmationModal/ConfirmationModal.mjs +31 -26
  126. package/dist/esm/Modal/GenericModal/subcomponents/ModalHeader/ModalHeader.mjs +4 -5
  127. package/dist/esm/MultiSelect/subcomponents/Checkbox/Checkbox.mjs +7 -17
  128. package/dist/esm/MultiSelect/subcomponents/MultiSelectToggle/MultiSelectToggle.mjs +5 -8
  129. package/dist/esm/Notification/subcomponents/CancelButton/CancelButton.mjs +4 -3
  130. package/dist/esm/Notification/subcomponents/NotificationIcon/NotificationIcon.mjs +33 -38
  131. package/dist/esm/Notification/subcomponents/NotificationIcon/NotificationIcon.module.css.mjs +4 -0
  132. package/dist/esm/Pagination/subcomponents/DirectionalLink/DirectionalLink.mjs +11 -19
  133. package/dist/esm/Pagination/subcomponents/TruncateIndicator/TruncateIndicator.mjs +4 -5
  134. package/dist/esm/Popover/Popover.mjs +5 -4
  135. package/dist/esm/Popover/utils/classMappers.mjs +21 -16
  136. package/dist/esm/RichTextEditor/RichTextEditor/utils/controlmap.mjs +33 -29
  137. package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.mjs +10 -12
  138. package/dist/esm/Select/Select.mjs +9 -11
  139. package/dist/esm/SplitButton/subcomponents/DropdownButton/DropdownButton.mjs +4 -4
  140. package/dist/esm/Table/Table.mjs +11 -10
  141. package/dist/esm/Tag/Tag.mjs +21 -17
  142. package/dist/esm/TextArea/TextArea.mjs +21 -53
  143. package/dist/esm/TextArea/TextArea.module.css.mjs +12 -0
  144. package/dist/esm/TextField/TextField.mjs +7 -6
  145. package/dist/esm/TextField/TextField.module.scss.mjs +4 -6
  146. package/dist/esm/Tile/subcomponents/GenericTile/GenericTile.mjs +8 -7
  147. package/dist/esm/TitleBlockZen/TitleBlockZen.mjs +9 -12
  148. package/dist/esm/TitleBlockZen/subcomponents/MainActions.mjs +7 -7
  149. package/dist/esm/TitleBlockZen/subcomponents/MobileActions.mjs +13 -18
  150. package/dist/esm/TitleBlockZen/subcomponents/SecondaryActions.mjs +7 -7
  151. package/dist/esm/ToggleSwitch/ToggleSwitch/ToggleSwitch.mjs +5 -5
  152. package/dist/esm/Workflow/subcomponents/Footer/components/ProgressStepper/ProgressStepper.mjs +16 -21
  153. package/dist/esm/__future__/Icon/Icon.mjs +38 -0
  154. package/dist/esm/__future__/Icon/Icon.module.css.mjs +8 -0
  155. package/dist/esm/__future__/Icon/constants.mjs +6 -0
  156. package/dist/esm/__future__/Select/subcomponents/ListBox/ListBox.mjs +7 -11
  157. package/dist/esm/__future__/Select/subcomponents/Option/Option.mjs +4 -5
  158. package/dist/esm/__future__/Select/subcomponents/SelectToggle/SelectToggle.mjs +6 -10
  159. package/dist/esm/__future__/Tabs/Tabs.mjs +15 -0
  160. package/dist/esm/__future__/Tabs/subcomponents/Tab/Tab.mjs +30 -0
  161. package/dist/esm/__future__/Tabs/subcomponents/Tab/Tab.module.css.mjs +5 -0
  162. package/dist/esm/__future__/Tabs/subcomponents/TabList/TabList.mjs +22 -0
  163. package/dist/esm/__future__/Tabs/subcomponents/TabList/TabList.module.css.mjs +5 -0
  164. package/dist/esm/__future__/Tabs/subcomponents/TabPanel/TabPanel.mjs +16 -0
  165. package/dist/esm/__future__/Tag/RemovableTag/subcomponents/RemoveButton.mjs +4 -3
  166. package/dist/esm/future.mjs +5 -0
  167. package/dist/styles.css +828 -1388
  168. package/dist/types/Filter/FilterBar/context/FilterBarContext.d.ts +2 -0
  169. package/dist/types/Filter/FilterBar/context/reducer/filterBarStateReducer.d.ts +3 -0
  170. package/dist/types/Filter/FilterBar/context/types.d.ts +1 -0
  171. package/dist/types/Filter/FilterMultiSelect/FilterMultiSelect.d.ts +2 -1
  172. package/dist/types/Filter/FilterMultiSelect/context/MenuTriggerProvider/MenuTriggerProvider.d.ts +2 -1
  173. package/dist/types/Loading/LoadingSpinner/LoadingSpinner.d.ts +2 -2
  174. package/dist/types/Loading/LoadingSpinner/subcomponents/SpinnerIcon.d.ts +5 -0
  175. package/dist/types/Loading/LoadingSpinner/subcomponents/index.d.ts +1 -0
  176. package/dist/types/Tabs/subcomponents/index.d.ts +0 -1
  177. package/dist/types/TextArea/TextArea.d.ts +4 -0
  178. package/dist/types/__future__/Icon/Icon.d.ts +21 -0
  179. package/dist/types/__future__/Icon/constants.d.ts +5 -0
  180. package/dist/types/__future__/Icon/index.d.ts +1 -0
  181. package/dist/types/__future__/Icon/types.d.ts +4 -0
  182. package/dist/types/__future__/Tabs/Tabs.d.ts +11 -0
  183. package/dist/types/__future__/Tabs/index.d.ts +2 -0
  184. package/dist/types/__future__/Tabs/subcomponents/Tab/Tab.d.ts +12 -0
  185. package/dist/types/__future__/Tabs/subcomponents/Tab/index.d.ts +1 -0
  186. package/dist/types/__future__/Tabs/subcomponents/TabList/TabList.d.ts +17 -0
  187. package/dist/types/__future__/Tabs/subcomponents/TabList/index.d.ts +1 -0
  188. package/dist/types/__future__/Tabs/subcomponents/TabPanel/TabPanel.d.ts +6 -0
  189. package/dist/types/__future__/Tabs/subcomponents/TabPanel/index.d.ts +1 -0
  190. package/dist/types/__future__/Tabs/subcomponents/index.d.ts +3 -0
  191. package/dist/types/__future__/index.d.ts +2 -0
  192. package/package.json +36 -37
  193. package/src/Avatar/Avatar.module.scss +10 -12
  194. package/src/Avatar/Avatar.tsx +14 -5
  195. package/src/BrandMoment/_docs/BrandMoment.stories.tsx +6 -10
  196. package/src/BrandMoment/_docs/ExampleHeaders.tsx +2 -2
  197. package/src/Calendar/CalendarRange/CalendarRange.tsx +7 -3
  198. package/src/Calendar/CalendarSingle/CalendarSingle.tsx +7 -3
  199. package/src/Calendar/LegacyCalendarRange/LegacyCalendarRange.tsx +7 -3
  200. package/src/Calendar/baseCalendarClassNames.module.scss +0 -4
  201. package/src/Checkbox/Checkbox/Checkbox.module.scss +2 -10
  202. package/src/Checkbox/Checkbox/Checkbox.tsx +6 -8
  203. package/src/ClearButton/ClearButton.tsx +2 -2
  204. package/src/Collapsible/Collapsible/Collapsible.tsx +5 -6
  205. package/src/Collapsible/Collapsible/_docs/Collapsible.stories.tsx +2 -2
  206. package/src/DateInput/DateInputWithIconButton/DateInputWithIconButton.module.scss +2 -7
  207. package/src/DateInput/DateInputWithIconButton/DateInputWithIconButton.tsx +2 -2
  208. package/src/DateRangePicker/DateRangePicker.tsx +2 -2
  209. package/src/EmptyState/_docs/EmptyState.stickersheet.stories.tsx +8 -2
  210. package/src/EmptyState/_docs/EmptyState.stories.tsx +4 -2
  211. package/src/ErrorPage/ErrorPage.tsx +5 -3
  212. package/src/FieldMessage/FieldMessage.tsx +6 -14
  213. package/src/Filter/FilterBar/FilterBar.spec.tsx +99 -12
  214. package/src/Filter/FilterBar/context/FilterBarContext.tsx +11 -2
  215. package/src/Filter/FilterBar/context/reducer/filterBarStateReducer.ts +7 -0
  216. package/src/Filter/FilterBar/context/reducer/setupFilterBarState.ts +1 -0
  217. package/src/Filter/FilterBar/context/types.ts +1 -0
  218. package/src/Filter/FilterBar/subcomponents/AddFiltersMenu/AddFiltersMenu.tsx +14 -4
  219. package/src/Filter/FilterBar/subcomponents/FilterBarButton/FilterBarButton.tsx +10 -2
  220. package/src/Filter/FilterBar/subcomponents/FilterBarMultiSelect/FilterBarMultiSelect.tsx +18 -3
  221. package/src/Filter/FilterButton/FilterButton/FilterButton.module.scss +1 -1
  222. package/src/Filter/FilterButton/FilterButton/FilterButton.tsx +5 -6
  223. package/src/Filter/FilterButton/FilterButtonRemovable/FilterButtonRemovable.tsx +2 -2
  224. package/src/Filter/FilterDateRangePicker/FilterDateRangePicker.spec.tsx +0 -1
  225. package/src/Filter/FilterDateRangePicker/subcomponents/DateRangeInputField/DateRangeInputField.spec.tsx +2 -1
  226. package/src/Filter/FilterMultiSelect/FilterMultiSelect.tsx +3 -1
  227. package/src/Filter/FilterMultiSelect/context/MenuTriggerProvider/MenuTriggerProvider.tsx +4 -1
  228. package/src/Filter/FilterMultiSelect/subcomponents/MultiSelectOption/MultiSelectOption.tsx +2 -2
  229. package/src/Filter/FilterMultiSelect/subcomponents/SelectionControlButton/SelectionControlButton.module.scss +9 -11
  230. package/src/Filter/FilterSelect/FilterSelect.spec.tsx +52 -21
  231. package/src/Filter/FilterSelect/FilterSelect.tsx +2 -1
  232. package/src/Filter/FilterSelect/_docs/FilterSelect.stories.tsx +0 -1
  233. package/src/GuidanceBlock/GuidanceBlock.module.scss +4 -5
  234. package/src/GuidanceBlock/GuidanceBlock.tsx +6 -2
  235. package/src/Icon/_docs/{Icon.stories.tsx → Icon.docs.stories.tsx} +1 -1
  236. package/src/Icon/_docs/Icon.mdx +1 -2
  237. package/src/Icon/_docs/Icon.stickersheet.stories.tsx +1 -1
  238. package/src/Icon/bin/update-icons.sh +1 -1
  239. package/src/Illustration/utils/usePausePlay.tsx +7 -5
  240. package/src/Input/Input/_docs/Input.stickersheet.stories.tsx +7 -5
  241. package/src/Input/Input/_docs/Input.stories.tsx +5 -3
  242. package/src/Input/InputRange/InputRange.module.scss +4 -4
  243. package/src/Input/InputSearch/InputSearch.module.scss +21 -21
  244. package/src/Input/InputSearch/InputSearch.tsx +2 -2
  245. package/src/Label/Label.module.scss +4 -0
  246. package/src/LikertScaleLegacy/LikertScaleLegacy.module.scss +7 -8
  247. package/src/LikertScaleLegacy/LikertScaleLegacy.tsx +2 -2
  248. package/src/Loading/LoadingGraphic/_docs/LoadingGraphic.stories.tsx +2 -2
  249. package/src/Loading/LoadingSpinner/LoadingSpinner.module.css +32 -0
  250. package/src/Loading/LoadingSpinner/LoadingSpinner.tsx +10 -54
  251. package/src/Loading/LoadingSpinner/_docs/LoadingSpinner.mdx +7 -2
  252. package/src/Loading/LoadingSpinner/_docs/LoadingSpinner.stickersheet.stories.tsx +2 -1
  253. package/src/Loading/LoadingSpinner/_docs/LoadingSpinner.stories.tsx +19 -0
  254. package/src/Loading/LoadingSpinner/subcomponents/SpinnerIcon.tsx +87 -0
  255. package/src/Loading/LoadingSpinner/subcomponents/index.ts +1 -0
  256. package/src/Modal/ConfirmationModal/ConfirmationModal.module.scss +2 -0
  257. package/src/Modal/ConfirmationModal/ConfirmationModal.tsx +32 -35
  258. package/src/Modal/ContextModal/ContextModal.module.scss +4 -4
  259. package/src/Modal/GenericModal/GenericModal.module.scss +8 -8
  260. package/src/Modal/GenericModal/subcomponents/ModalHeader/ModalHeader.module.scss +2 -2
  261. package/src/Modal/GenericModal/subcomponents/ModalHeader/ModalHeader.tsx +2 -2
  262. package/src/Modal/InputEditModal/InputEditModal.module.scss +4 -4
  263. package/src/MultiSelect/MultiSelect.spec.tsx +7 -3
  264. package/src/MultiSelect/subcomponents/Checkbox/Checkbox.module.scss +0 -6
  265. package/src/MultiSelect/subcomponents/Checkbox/Checkbox.tsx +10 -9
  266. package/src/MultiSelect/subcomponents/MultiSelectOptions/MultiSelectOptions.spec.tsx +11 -7
  267. package/src/MultiSelect/subcomponents/MultiSelectToggle/MultiSelectToggle.tsx +5 -7
  268. package/src/Notification/subcomponents/CancelButton/CancelButton.tsx +2 -2
  269. package/src/Notification/subcomponents/GenericNotification/_mixins.scss +9 -8
  270. package/src/Notification/subcomponents/NotificationIcon/NotificationIcon.module.css +3 -0
  271. package/src/Notification/subcomponents/NotificationIcon/NotificationIcon.tsx +22 -16
  272. package/src/Pagination/subcomponents/DirectionalLink/DirectionalLink.module.scss +0 -4
  273. package/src/Pagination/subcomponents/DirectionalLink/DirectionalLink.tsx +13 -12
  274. package/src/Pagination/subcomponents/TruncateIndicator/TruncateIndicator.module.scss +0 -1
  275. package/src/Pagination/subcomponents/TruncateIndicator/TruncateIndicator.tsx +2 -2
  276. package/src/Popover/Popover.module.scss +3 -3
  277. package/src/Popover/Popover.tsx +2 -2
  278. package/src/Popover/utils/classMappers.tsx +6 -11
  279. package/src/RichTextEditor/RichTextEditor/RichTextEditor.module.scss +2 -2
  280. package/src/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.module.scss +1 -1
  281. package/src/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/_docs/ToggleIconButton.stickersheet.stories.tsx +7 -7
  282. package/src/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/_docs/ToggleIconButton.stories.tsx +2 -2
  283. package/src/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.spec.tsx +7 -4
  284. package/src/RichTextEditor/RichTextEditor/subcomponents/Toolbar/_docs/Toolbar.stories.tsx +18 -12
  285. package/src/RichTextEditor/RichTextEditor/utils/controlmap.tsx +25 -18
  286. package/src/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.tsx +4 -8
  287. package/src/Select/Select.module.scss +9 -9
  288. package/src/Select/Select.tsx +10 -7
  289. package/src/SplitButton/subcomponents/DropdownButton/DropdownButton.spec.tsx +4 -5
  290. package/src/SplitButton/subcomponents/DropdownButton/DropdownButton.tsx +2 -2
  291. package/src/Table/Table.module.scss +11 -7
  292. package/src/Table/Table.tsx +4 -8
  293. package/src/Table/_docs/Table.stickersheet.stories.tsx +4 -4
  294. package/src/Table/_docs/Table.stories.tsx +3 -3
  295. package/src/Tabs/subcomponents/index.ts +0 -1
  296. package/src/Tag/Tag.module.scss +2 -0
  297. package/src/Tag/Tag.tsx +7 -13
  298. package/src/Text/Text.module.scss +2 -0
  299. package/src/TextArea/TextArea.module.css +142 -0
  300. package/src/TextArea/TextArea.tsx +25 -53
  301. package/src/TextField/TextField.module.scss +10 -36
  302. package/src/TextField/TextField.spec.tsx +9 -4
  303. package/src/TextField/TextField.tsx +4 -6
  304. package/src/TextField/_docs/TextField.stickersheet.stories.tsx +9 -1
  305. package/src/TextField/_docs/TextField.stories.tsx +4 -3
  306. package/src/Tile/subcomponents/GenericTile/GenericTile.module.scss +7 -8
  307. package/src/Tile/subcomponents/GenericTile/GenericTile.tsx +3 -3
  308. package/src/TitleBlockZen/TitleBlockZen.module.scss +15 -21
  309. package/src/TitleBlockZen/TitleBlockZen.spec.tsx +1 -1
  310. package/src/TitleBlockZen/TitleBlockZen.tsx +6 -9
  311. package/src/TitleBlockZen/_docs/TitleBlockZen.stories.tsx +5 -5
  312. package/src/TitleBlockZen/subcomponents/MainActions.tsx +5 -3
  313. package/src/TitleBlockZen/subcomponents/MobileActions.module.scss +2 -2
  314. package/src/TitleBlockZen/subcomponents/MobileActions.tsx +13 -16
  315. package/src/TitleBlockZen/subcomponents/SecondaryActions.tsx +3 -3
  316. package/src/ToggleSwitch/ToggleSwitch/ToggleSwitch.module.scss +0 -3
  317. package/src/ToggleSwitch/ToggleSwitch/ToggleSwitch.tsx +2 -2
  318. package/src/Workflow/_docs/Workflow.stories.tsx +4 -5
  319. package/src/Workflow/_docs/WorkflowHeader.stories.tsx +4 -5
  320. package/src/Workflow/_docs/controls/controls.tsx +4 -4
  321. package/src/Workflow/subcomponents/Footer/components/ProgressStepper/ProgressStepper.tsx +6 -31
  322. package/src/__actions__/Button/v1/Button/Button.module.scss +0 -1
  323. package/src/__actions__/Button/v1/Button/_docs/Button.mdx +1 -1
  324. package/src/__actions__/Button/v1/Button/_docs/Button.stickersheet.stories.tsx +6 -6
  325. package/src/__actions__/Button/v1/Button/_docs/Button.stories.tsx +7 -6
  326. package/src/__actions__/Button/v1/IconButton/_docs/IconButton.stickersheet.stories.tsx +7 -7
  327. package/src/__actions__/Button/v1/IconButton/_docs/IconButton.stories.tsx +5 -5
  328. package/src/__actions__/Button/v2/Button/_docs/Button.mdx +1 -1
  329. package/src/__actions__/Button/v2/Button/_docs/Button.stories.tsx +7 -6
  330. package/src/__actions__/Button/v2/IconButton/_docs/IconButton.stories.tsx +5 -5
  331. package/src/__actions__/Button/v3/_docs/ApiSpecification.mdx +1 -1
  332. package/src/__actions__/Button/v3/_docs/Button.docs.stories.tsx +1 -1
  333. package/src/__actions__/Button/v3/_docs/Button.mdx +1 -1
  334. package/src/__actions__/Button/v3/_docs/Button.spec.stories.tsx +1 -1
  335. package/src/__actions__/Button/v3/_docs/Button.stickersheet.stories.tsx +3 -3
  336. package/src/__actions__/Button/v3/_docs/Button.stories.tsx +1 -1
  337. package/src/__actions__/Menu/v1/_docs/Menu.stickersheet.stories.tsx +3 -3
  338. package/src/__actions__/Menu/v1/_docs/Menu.stories.tsx +3 -3
  339. package/src/__actions__/Menu/v1/_docs/MenuContentExample.tsx +6 -6
  340. package/src/__actions__/Menu/v1/_docs/examples.tsx +5 -5
  341. package/src/__actions__/Menu/v2/_docs/Menu.stories.tsx +3 -3
  342. package/src/__actions__/Menu/v3/_docs/ApiSpecification.mdx +1 -3
  343. package/src/__actions__/Menu/v3/_docs/Menu.docs.stories.tsx +46 -45
  344. package/src/__actions__/Menu/v3/_docs/Menu.mdx +1 -1
  345. package/src/__actions__/Menu/v3/_docs/Menu.spec.stories.tsx +21 -23
  346. package/src/__actions__/Menu/v3/_docs/Menu.stories.tsx +12 -15
  347. package/src/__future__/Icon/Icon.module.css +35 -0
  348. package/src/__future__/Icon/Icon.spec.tsx +36 -0
  349. package/src/__future__/Icon/Icon.tsx +85 -0
  350. package/src/__future__/Icon/_docs/Icon--api-specification.mdx +98 -0
  351. package/src/__future__/Icon/_docs/Icon--usage-guidelines.mdx +145 -0
  352. package/src/__future__/Icon/_docs/Icon.docs.module.css +17 -0
  353. package/src/__future__/Icon/_docs/Icon.docs.stories.tsx +524 -0
  354. package/src/__future__/Icon/_docs/Icon.stickersheet.stories.tsx +126 -0
  355. package/src/__future__/Icon/_docs/assets/interface-dont.png +0 -0
  356. package/src/__future__/Icon/_docs/assets/tooltip-dont.png +0 -0
  357. package/src/__future__/Icon/constants.ts +149 -0
  358. package/src/__future__/Icon/index.ts +1 -0
  359. package/src/__future__/Icon/material-symbols-metadata.json +3370 -0
  360. package/src/__future__/Icon/types.ts +11 -0
  361. package/src/__future__/Select/_docs/Select.stories.tsx +1 -2
  362. package/src/__future__/Select/subcomponents/ListBox/ListBox.tsx +3 -4
  363. package/src/__future__/Select/subcomponents/Option/Option.tsx +2 -2
  364. package/src/__future__/Select/subcomponents/SelectToggle/SelectToggle.module.scss +1 -1
  365. package/src/__future__/Select/subcomponents/SelectToggle/SelectToggle.tsx +6 -9
  366. package/src/__future__/Tabs/Tabs.tsx +18 -0
  367. package/src/__future__/Tabs/_docs/Tabs--api-specification.mdx +43 -0
  368. package/src/__future__/Tabs/_docs/Tabs--migration-guide.mdx +93 -0
  369. package/src/__future__/Tabs/_docs/Tabs.stories.tsx +74 -0
  370. package/src/__future__/Tabs/index.ts +2 -0
  371. package/src/__future__/Tabs/subcomponents/Tab/Tab.module.css +94 -0
  372. package/src/__future__/Tabs/subcomponents/Tab/Tab.tsx +58 -0
  373. package/src/__future__/Tabs/subcomponents/Tab/index.ts +1 -0
  374. package/src/__future__/Tabs/subcomponents/TabList/TabList.module.css +8 -0
  375. package/src/__future__/Tabs/subcomponents/TabList/TabList.tsx +45 -0
  376. package/src/__future__/Tabs/subcomponents/TabList/index.ts +1 -0
  377. package/src/__future__/Tabs/subcomponents/TabPanel/TabPanel.module.css +12 -0
  378. package/src/__future__/Tabs/subcomponents/TabPanel/TabPanel.tsx +20 -0
  379. package/src/__future__/Tabs/subcomponents/TabPanel/index.ts +1 -0
  380. package/src/__future__/Tabs/subcomponents/index.ts +3 -0
  381. package/src/__future__/Tag/RemovableTag/_docs/RemovableTag.stories.tsx +0 -77
  382. package/src/__future__/Tag/RemovableTag/subcomponents/RemoveButton.module.scss +1 -58
  383. package/src/__future__/Tag/RemovableTag/subcomponents/RemoveButton.tsx +2 -12
  384. package/src/__future__/Tag/Tag/Tag.module.scss +1 -1
  385. package/src/__future__/Tag/Tag/_docs/Tag-migration-guide.stories.tsx +6 -17
  386. package/src/__future__/Tag/Tag/_docs/Tag.stickersheet.stories.tsx +5 -2
  387. package/src/__future__/Tag/Tag/_docs/Tag.stories.tsx +13 -6
  388. package/src/__future__/index.ts +2 -0
  389. package/src/__overlays__/Tooltip/v1/_docs/Tooltip.stickersheet.stories.tsx +10 -10
  390. package/src/__overlays__/Tooltip/v1/_docs/Tooltip.stories.tsx +7 -4
  391. package/src/__overlays__/Tooltip/v1/utils/isSemanticElement.spec.tsx +4 -11
  392. package/src/__overlays__/Tooltip/v3/_docs/Tooltip.docs.stories.tsx +10 -10
  393. package/src/__overlays__/Tooltip/v3/_docs/Tooltip.spec.stories.tsx +3 -3
  394. package/codemods/utils/getTagName.spec.ts +0 -24
  395. package/codemods/utils/getTagName.ts +0 -32
  396. package/dist/cjs/Loading/LoadingSpinner/LoadingSpinner.module.scss.cjs +0 -7
  397. package/dist/cjs/TextArea/TextArea.module.scss.cjs +0 -13
  398. package/dist/cjs/__future__/Tag/RemovableTag/subcomponents/RemoveTagIcon.cjs +0 -23
  399. package/dist/esm/Loading/LoadingSpinner/LoadingSpinner.module.scss.mjs +0 -5
  400. package/dist/esm/TextArea/TextArea.module.scss.mjs +0 -11
  401. package/dist/esm/__future__/Tag/RemovableTag/subcomponents/RemoveTagIcon.mjs +0 -15
  402. package/dist/types/__future__/Tag/RemovableTag/subcomponents/RemoveTagIcon.d.ts +0 -2
  403. package/src/Loading/LoadingSpinner/LoadingSpinner.module.scss +0 -16
  404. package/src/TextArea/TextArea.module.scss +0 -137
  405. package/src/__future__/Tag/RemovableTag/subcomponents/RemoveTagIcon.tsx +0 -21
  406. /package/dist/cjs/__utilities__/{isClientReady → useIsClientReady}/useIsClientReady.cjs +0 -0
  407. /package/dist/esm/__utilities__/{isClientReady → useIsClientReady}/useIsClientReady.mjs +0 -0
  408. /package/dist/types/__utilities__/{isClientReady → useIsClientReady}/index.d.ts +0 -0
  409. /package/dist/types/__utilities__/{isClientReady → useIsClientReady}/useIsClientReady.d.ts +0 -0
  410. /package/src/__utilities__/{isClientReady → useIsClientReady}/index.ts +0 -0
  411. /package/src/__utilities__/{isClientReady → useIsClientReady}/useIsClientReady.tsx +0 -0
@@ -0,0 +1,524 @@
1
+ import React, { useState } from "react"
2
+ import { Meta, StoryObj } from "@storybook/react"
3
+ import classnames from "classnames"
4
+ import { InlineNotification } from "~components/Notification"
5
+ import {
6
+ TableCard,
7
+ TableContainer,
8
+ TableHeader,
9
+ TableHeaderRowCell,
10
+ TableRow,
11
+ TableRowCell,
12
+ } from "~components/Table"
13
+ import { Text } from "~components/Text"
14
+ import { ToggleSwitchField } from "~components/ToggleSwitch"
15
+ import { Button } from "~components/__actions__/v3"
16
+ import { Tag } from "~components/__future__/Tag"
17
+ import { StickerSheet } from "~storybook/components/StickerSheet"
18
+ import { iconDefaultSet } from "../constants"
19
+ import { Icon } from "../index"
20
+ import imgInterfaceDont from "./assets/interface-dont.png"
21
+ import imgTooltipDont from "./assets/tooltip-dont.png"
22
+ import styles from "./Icon.docs.module.css"
23
+
24
+ const meta = {
25
+ title: "Illustrations/Icon/Icon (Future)",
26
+ component: Icon,
27
+ args: {
28
+ name: "star",
29
+ isPresentational: true,
30
+ },
31
+ argTypes: {
32
+ name: { type: "string" },
33
+ alt: {
34
+ description: "Set this value when `isPresentational={false}`",
35
+ },
36
+ },
37
+ } satisfies Meta<typeof Icon>
38
+
39
+ export default meta
40
+
41
+ type Story = StoryObj<typeof meta>
42
+
43
+ export const Playground: Story = {
44
+ render: args => {
45
+ if (args.isPresentational) return <Icon {...args} alt={undefined} />
46
+ return <Icon {...args} alt={args.alt ?? "Fallback string"} />
47
+ },
48
+ }
49
+
50
+ export const Filled: Story = {
51
+ args: { isFilled: true },
52
+ }
53
+
54
+ export const MirrorInRTL: Story = {
55
+ render: args => (
56
+ <StickerSheet>
57
+ <StickerSheet.Header
58
+ headings={['dir=["ltr"]', 'dir=["rtl"]']}
59
+ hasVerticalHeadings
60
+ />
61
+ <StickerSheet.Body>
62
+ <StickerSheet.Row rowTitle="arrow_forward">
63
+ <div dir="ltr" className="text-center">
64
+ <Icon {...args} name="arrow_forward" shouldMirrorInRTL />
65
+ </div>
66
+ <div dir="rtl" className="text-center">
67
+ <Icon {...args} name="arrow_forward" shouldMirrorInRTL />
68
+ </div>
69
+ </StickerSheet.Row>
70
+ <StickerSheet.Row rowTitle="format_list_numbered">
71
+ <div dir="ltr" className="text-center">
72
+ <Icon {...args} name="format_list_numbered" shouldMirrorInRTL />
73
+ </div>
74
+ <div dir="rtl" className="text-center">
75
+ <Icon {...args} name="format_list_numbered" shouldMirrorInRTL />
76
+ </div>
77
+ </StickerSheet.Row>
78
+ </StickerSheet.Body>
79
+ </StickerSheet>
80
+ ),
81
+ parameters: {
82
+ docs: {
83
+ source: {
84
+ code: `
85
+ <div dir="ltr" className="text-center">
86
+ <Icon {...props} name="arrow_forward" shouldMirrorInRTL />
87
+ </div>
88
+ <div dir="rtl" className="text-center">
89
+ <Icon {...props} name="arrow_forward" shouldMirrorInRTL />
90
+ </div>
91
+ <div dir="ltr" className="text-center">
92
+ <Icon {...props} name="format_list_numbered" shouldMirrorInRTL />
93
+ </div>
94
+ <div dir="rtl" className="text-center">
95
+ <Icon {...props} name="format_list_numbered" shouldMirrorInRTL />
96
+ </div>
97
+ `,
98
+ },
99
+ },
100
+ },
101
+ }
102
+
103
+ export const Color: Story = {
104
+ render: args => (
105
+ <div className="flex gap-16">
106
+ <div className="text-green-500">
107
+ <Icon {...args} />
108
+ </div>
109
+ <Icon {...args} className="text-blue-500" />
110
+ </div>
111
+ ),
112
+ }
113
+
114
+ export const Size: Story = {
115
+ render: args => (
116
+ <div className="flex gap-16">
117
+ <Icon {...args} className="[--icon-size:48]" />
118
+ <div className="text-[48px]">
119
+ <Icon {...args} className="text-[1em] [--icon-optical-size:48]" />
120
+ </div>
121
+ </div>
122
+ ),
123
+ }
124
+
125
+ export const MeaningfulIcon: Story = {
126
+ render: args => (
127
+ <Button>
128
+ <Icon {...args} />
129
+ </Button>
130
+ ),
131
+ args: { isPresentational: false, alt: "Favourite" },
132
+ }
133
+
134
+ export const PresentationalIcon: Story = {
135
+ render: args => (
136
+ <Button>
137
+ <Icon {...args} /> Favourite
138
+ </Button>
139
+ ),
140
+ args: { isPresentational: true },
141
+ }
142
+
143
+ const IconSetButton = ({
144
+ iconName,
145
+ isFilled,
146
+ }: {
147
+ iconName: string
148
+ isFilled: boolean
149
+ }): JSX.Element => {
150
+ const [copied, setCopied] = useState(false)
151
+
152
+ const handleCopy = (): void => {
153
+ const snippet = isFilled
154
+ ? `<Icon name="${iconName}" isPresentational isFilled />`
155
+ : `<Icon name="${iconName}" isPresentational />`
156
+ navigator.clipboard.writeText(snippet)
157
+
158
+ setCopied(true)
159
+ setTimeout(() => setCopied(false), 1000)
160
+ }
161
+
162
+ return (
163
+ <li>
164
+ <button
165
+ type="button"
166
+ onClick={handleCopy}
167
+ className={classnames(
168
+ "flex flex-col justify-center items-center gap-16",
169
+ "cursor-pointer h-full w-full p-16 rounded",
170
+ "bg-gray-100 hover:bg-gray-200"
171
+ )}
172
+ >
173
+ {copied ? (
174
+ <Tag color="green" classNameOverride="border-1 border-green-500">
175
+ Copied!
176
+ </Tag>
177
+ ) : (
178
+ <>
179
+ <Icon name={iconName} isPresentational isFilled={isFilled} />
180
+ <Text variant="small" tag="span">
181
+ {iconName}
182
+ </Text>
183
+ </>
184
+ )}
185
+ </button>
186
+ </li>
187
+ )
188
+ }
189
+
190
+ export const DefaultIconSet: Story = {
191
+ render: () => {
192
+ const [isFilled, setIsFilled] = useState(false)
193
+
194
+ return (
195
+ <div className="flex flex-col gap-8">
196
+ <ToggleSwitchField
197
+ labelText="Filled"
198
+ toggledStatus={isFilled ? "on" : "off"}
199
+ onToggle={() => setIsFilled(!isFilled)}
200
+ />
201
+ <ul
202
+ className="grid list-none gap-16 m-0 p-0"
203
+ style={{ gridTemplateColumns: "repeat(auto-fit, minmax(11em, 1fr))" }}
204
+ >
205
+ {iconDefaultSet.map(iconName => (
206
+ <IconSetButton
207
+ key={iconName}
208
+ iconName={iconName}
209
+ isFilled={isFilled}
210
+ />
211
+ ))}
212
+ </ul>
213
+ </div>
214
+ )
215
+ },
216
+ }
217
+
218
+ export const ConsistentDo: Story = {
219
+ render: () => (
220
+ <Text variant="body">
221
+ Edit <Icon name="edit" isPresentational />
222
+ </Text>
223
+ ),
224
+ }
225
+
226
+ export const FilledUnfilledDo: Story = {
227
+ render: () => (
228
+ <div className="flex gap-16">
229
+ <div className="flex items-center gap-4">
230
+ <Text variant="body">Default state</Text>
231
+ <Icon name="thumb_up" isPresentational />
232
+ </div>
233
+ <div className="flex items-center gap-4">
234
+ <Text variant="body">Selected</Text>
235
+ <Icon name="thumb_up" isPresentational isFilled />
236
+ </div>
237
+ </div>
238
+ ),
239
+ }
240
+
241
+ export const OpticalSizeDo: Story = {
242
+ render: () => (
243
+ <div className="flex gap-16">
244
+ <div className="flex items-center gap-4">
245
+ <Text variant="body">20/20</Text>
246
+ <Icon
247
+ name="star"
248
+ isPresentational
249
+ className="text-[20px] [--icon-optical-size:20]"
250
+ />
251
+ </div>
252
+ <div className="flex items-center gap-4">
253
+ <Text variant="body">24/24</Text>
254
+ <Icon
255
+ name="star"
256
+ isPresentational
257
+ className="text-[24px] [--icon-optical-size:24]"
258
+ />
259
+ </div>
260
+ <div className="flex items-center gap-4">
261
+ <Text variant="body">40/40</Text>
262
+ <Icon
263
+ name="star"
264
+ isPresentational
265
+ className="text-[40px] [--icon-optical-size:40]"
266
+ />
267
+ </div>
268
+ <div className="flex items-center gap-4">
269
+ <Text variant="body">48/48</Text>
270
+ <Icon
271
+ name="star"
272
+ isPresentational
273
+ className="text-[48px] [--icon-optical-size:48]"
274
+ />
275
+ </div>
276
+ </div>
277
+ ),
278
+ }
279
+
280
+ export const OpticalSizeDont: Story = {
281
+ render: () => (
282
+ <div className="flex gap-16">
283
+ <div className="flex items-center gap-4">
284
+ <Text variant="body">20/48</Text>
285
+ <Icon
286
+ name="star"
287
+ isPresentational
288
+ className="text-[20px] [--icon-optical-size:48]"
289
+ />
290
+ </div>
291
+ <div className="flex items-center gap-4">
292
+ <Text variant="body">24/40</Text>
293
+ <Icon
294
+ name="star"
295
+ isPresentational
296
+ className="text-[24px] [--icon-optical-size:40]"
297
+ />
298
+ </div>
299
+ <div className="flex items-center gap-4">
300
+ <Text variant="body">40/24</Text>
301
+ <Icon
302
+ name="star"
303
+ isPresentational
304
+ className="text-[40px] [--icon-optical-size:24]"
305
+ />
306
+ </div>
307
+ <div className="flex items-center gap-4">
308
+ <Text variant="body">48/20</Text>
309
+ <Icon
310
+ name="star"
311
+ isPresentational
312
+ className="text-[48px] [--icon-optical-size:20]"
313
+ />
314
+ </div>
315
+ </div>
316
+ ),
317
+ }
318
+
319
+ export const AlignmentDo: Story = {
320
+ render: () => (
321
+ <img
322
+ src="https://lh3.googleusercontent.com/twRAsK6vahc7l_yuhhlBzVp1yR_8tsspDL16Xry73IrhYE3ItxmKSqHC6MznHq9EZKfrOgP_a3RDNGLK28JmhHeFiDmiwYrbhBtpxjodrsw=s0"
323
+ alt="Symbol baseline set lower in relation to symbol."
324
+ className="w-full"
325
+ />
326
+ ),
327
+ }
328
+
329
+ export const AlignmentDont: Story = {
330
+ render: () => (
331
+ <img
332
+ src="https://lh3.googleusercontent.com/MePU5NYnrFy96fiDdULne6XwFlboyznBeVWD5CTrFwzNdzsMjrvg_ySLfXJVdUNxSkeUT4UH28_Orz916LRN78bhneYBA0dL8YpCQswiERo=s0"
333
+ alt="Both symbol and text set on same baseline."
334
+ className="w-full"
335
+ />
336
+ ),
337
+ }
338
+
339
+ export const ContrastDo: Story = {
340
+ render: () => (
341
+ <div className="bg-yellow-100 p-16">
342
+ <Icon name="star" isPresentational className="text-yellow-700" />
343
+ </div>
344
+ ),
345
+ }
346
+
347
+ export const ContrastDont: Story = {
348
+ render: () => (
349
+ <div className="bg-yellow-100 p-16">
350
+ <Icon name="star" isPresentational className="text-yellow-500" />
351
+ </div>
352
+ ),
353
+ }
354
+
355
+ export const ColorPurposefulDo: Story = {
356
+ render: () => (
357
+ <>
358
+ <InlineNotification variant="success">Success</InlineNotification>
359
+ <InlineNotification variant="warning" noBottomMargin>
360
+ Error
361
+ </InlineNotification>
362
+ </>
363
+ ),
364
+ }
365
+
366
+ export const DistinguishDo: Story = {
367
+ render: () => (
368
+ <div className="flex gap-16">
369
+ <div className="flex items-center gap-4">
370
+ <Text variant="body">Default state</Text>
371
+ <Icon name="thumb_up" isPresentational />
372
+ </div>
373
+ <div className="flex items-center gap-4">
374
+ <Text variant="body">Selected</Text>
375
+ <Icon name="thumb_up" isPresentational isFilled />
376
+ </div>
377
+ </div>
378
+ ),
379
+ }
380
+
381
+ export const DistinguishDont: Story = {
382
+ render: () => (
383
+ <div className="flex gap-16">
384
+ <div className="flex items-center gap-4">
385
+ <Text variant="body">Default state</Text>
386
+ <Icon name="thumb_up" isPresentational />
387
+ </div>
388
+ <div className="flex items-center gap-4">
389
+ <Text variant="body">Selected</Text>
390
+ <Icon name="thumb_up" isPresentational className="text-blue-500" />
391
+ </div>
392
+ </div>
393
+ ),
394
+ }
395
+
396
+ export const InterfaceDont: Story = {
397
+ render: () => (
398
+ <img
399
+ src={imgInterfaceDont}
400
+ alt="Example of a bad interface"
401
+ className="block m-auto max-w-[600px]"
402
+ />
403
+ ),
404
+ }
405
+
406
+ export const ImportantInformationDo: Story = {
407
+ render: () => (
408
+ <TableContainer>
409
+ <TableHeader>
410
+ <TableRow>
411
+ <TableHeaderRowCell
412
+ labelText="Flag for review"
413
+ sorting="ascending"
414
+ width={4 / 12}
415
+ />
416
+ <TableHeaderRowCell labelText="Employee" sorting="ascending" />
417
+ </TableRow>
418
+ </TableHeader>
419
+ <TableCard>
420
+ <TableRow>
421
+ <TableRowCell width={4 / 12}>
422
+ <Icon name="flag" alt="Flag" />
423
+ </TableRowCell>
424
+ <TableRowCell>
425
+ <Text tag="div" variant="body">
426
+ John Johnson
427
+ </Text>
428
+ </TableRowCell>
429
+ </TableRow>
430
+ </TableCard>
431
+ <TableCard>
432
+ <TableRow>
433
+ <TableRowCell width={4 / 12}>
434
+ <Icon name="flag" alt="Flag" />
435
+ </TableRowCell>
436
+ <TableRowCell>
437
+ <Text tag="div" variant="body">
438
+ Michelle Summer
439
+ </Text>
440
+ </TableRowCell>
441
+ </TableRow>
442
+ </TableCard>
443
+ </TableContainer>
444
+ ),
445
+ }
446
+
447
+ export const ImportantInformationDont: Story = {
448
+ render: () => (
449
+ <TableContainer>
450
+ <TableHeader>
451
+ <TableRow>
452
+ <TableHeaderRowCell labelText="" sorting="ascending" />
453
+ <TableHeaderRowCell labelText="Employee" sorting="ascending" />
454
+ </TableRow>
455
+ </TableHeader>
456
+ <TableCard>
457
+ <TableRow>
458
+ <TableRowCell>
459
+ <Icon name="flag" alt="Flag" />
460
+ </TableRowCell>
461
+ <TableRowCell>
462
+ <Text tag="div" variant="body">
463
+ John Johnson
464
+ </Text>
465
+ </TableRowCell>
466
+ </TableRow>
467
+ </TableCard>
468
+ <TableCard>
469
+ <TableRow>
470
+ <TableRowCell>
471
+ <Icon name="flag" alt="Flag" />
472
+ </TableRowCell>
473
+ <TableRowCell>
474
+ <Text tag="div" variant="body">
475
+ Michelle Summer
476
+ </Text>
477
+ </TableRowCell>
478
+ </TableRow>
479
+ </TableCard>
480
+ </TableContainer>
481
+ ),
482
+ parameters: {
483
+ a11y: { disable: true }, // accessible label fix to be addressed in a separate PR
484
+ },
485
+ }
486
+
487
+ const InteractiveIcon = (props: Record<string, any>): JSX.Element => (
488
+ <button type="button" className={styles.interactiveIcon} {...props}>
489
+ <Icon name="info" isPresentational isFilled />
490
+ </button>
491
+ )
492
+
493
+ export const InteractiveStatesDo: Story = {
494
+ render: () => (
495
+ <div className="flex gap-16">
496
+ <Text variant="body">
497
+ Base <InteractiveIcon />
498
+ </Text>
499
+ <Text variant="body">
500
+ Hover <InteractiveIcon data-sb-pseudo-styles="hover" />
501
+ </Text>
502
+ <Text variant="body">
503
+ Focus <InteractiveIcon data-sb-pseudo-styles="focus" />
504
+ </Text>
505
+ </div>
506
+ ),
507
+ parameters: {
508
+ pseudo: {
509
+ hover: '[data-sb-pseudo-styles="hover"]',
510
+ focus: '[data-sb-pseudo-styles="focus"]',
511
+ focusVisible: '[data-sb-pseudo-styles="focus"]',
512
+ },
513
+ },
514
+ }
515
+
516
+ export const TooltipDont: Story = {
517
+ render: () => (
518
+ <img
519
+ src={imgTooltipDont}
520
+ alt="Example of a bad use of a tooltip on an icon"
521
+ className="block m-auto max-w-[600px]"
522
+ />
523
+ ),
524
+ }
@@ -0,0 +1,126 @@
1
+ import React from "react"
2
+ import { Meta } from "@storybook/react"
3
+ import { CheckboxField } from "~components/Checkbox"
4
+ import { Label } from "~components/Label"
5
+ import { Text } from "~components/Text"
6
+ import { Button as ButtonV2 } from "~components/__actions__/v2"
7
+ import { Button as ButtonV3 } from "~components/__actions__/v3"
8
+ import {
9
+ StickerSheet,
10
+ StickerSheetStory,
11
+ } from "~storybook/components/StickerSheet"
12
+ import { handledRtlIcons, iconDefaultSet } from "../constants"
13
+ import { Icon, IconProps } from "../index"
14
+
15
+ export default {
16
+ title: "Illustrations/Icon/Icon (Future)",
17
+ parameters: {
18
+ chromatic: { disable: false },
19
+ controls: { disable: true },
20
+ },
21
+ } satisfies Meta
22
+
23
+ const StickerSheetTemplate: StickerSheetStory = {
24
+ render: ({ isReversed }) => {
25
+ const defaultProps = {
26
+ name: "star",
27
+ isPresentational: true,
28
+ } satisfies IconProps
29
+
30
+ const mirrorInRTL = [
31
+ "arrow_forward",
32
+ "arrow_back",
33
+ ...Object.keys(handledRtlIcons),
34
+ ] satisfies Array<IconProps["name"]>
35
+
36
+ return (
37
+ <>
38
+ <StickerSheet heading="Icon" isReversed={isReversed}>
39
+ <StickerSheet.Header
40
+ headings={["Outlined", "Filled", "Color"]}
41
+ hasVerticalHeadings
42
+ />
43
+ <StickerSheet.Body>
44
+ {iconDefaultSet.map(name => (
45
+ <StickerSheet.Row key={name} rowTitle={name}>
46
+ <Icon {...defaultProps} name={name} />
47
+ <Icon {...defaultProps} name={name} isFilled />
48
+ <Icon {...defaultProps} name={name} className="text-blue-500" />
49
+ </StickerSheet.Row>
50
+ ))}
51
+ </StickerSheet.Body>
52
+ </StickerSheet>
53
+
54
+ <StickerSheet heading="shouldMirrorInRTL" isReversed={isReversed}>
55
+ <StickerSheet.Header
56
+ headings={[
57
+ 'true; dir=["ltr"]',
58
+ 'true; dir=["rtl"]',
59
+ 'false; dir=["rtl"]',
60
+ ]}
61
+ hasVerticalHeadings
62
+ />
63
+ <StickerSheet.Body>
64
+ {mirrorInRTL.map(name => (
65
+ <StickerSheet.Row key={name} rowTitle={name}>
66
+ <div dir="ltr" className="text-center">
67
+ <Icon {...defaultProps} name={name} shouldMirrorInRTL />
68
+ </div>
69
+ <div dir="rtl" className="text-center">
70
+ <Icon {...defaultProps} name={name} shouldMirrorInRTL />
71
+ </div>
72
+ <div dir="rtl" className="text-center">
73
+ <Icon {...defaultProps} name={name} />
74
+ </div>
75
+ </StickerSheet.Row>
76
+ ))}
77
+ </StickerSheet.Body>
78
+ </StickerSheet>
79
+
80
+ <StickerSheet
81
+ heading="Alignment as children within other components"
82
+ isReversed={isReversed}
83
+ >
84
+ <StickerSheet.Body>
85
+ <StickerSheet.Row rowTitle="Text">
86
+ <Text variant="body">
87
+ Showcase alignment of an icon <Icon {...defaultProps} /> within
88
+ a sentence
89
+ </Text>
90
+ </StickerSheet.Row>
91
+ <StickerSheet.Row rowTitle="Label">
92
+ <Label>
93
+ Field label <Icon {...defaultProps} />
94
+ </Label>
95
+ </StickerSheet.Row>
96
+ <StickerSheet.Row rowTitle="CheckboxField">
97
+ <CheckboxField
98
+ labelText={
99
+ <>
100
+ Checkbox label <Icon {...defaultProps} />
101
+ </>
102
+ }
103
+ />
104
+ </StickerSheet.Row>
105
+ <StickerSheet.Row rowTitle="Button (v2)">
106
+ <ButtonV2
107
+ label="Button label"
108
+ icon={<Icon {...defaultProps} />}
109
+ />
110
+ </StickerSheet.Row>
111
+ <StickerSheet.Row rowTitle="Button (v3)">
112
+ <ButtonV3>
113
+ <Icon {...defaultProps} /> Button label
114
+ </ButtonV3>
115
+ </StickerSheet.Row>
116
+ </StickerSheet.Body>
117
+ </StickerSheet>
118
+ </>
119
+ )
120
+ },
121
+ }
122
+
123
+ export const StickerSheetDefault: StickerSheetStory = {
124
+ ...StickerSheetTemplate,
125
+ name: "Sticker Sheet (Default)",
126
+ }