@loadsmart/loadsmart-ui 5.10.0 → 5.11.0

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 (271) hide show
  1. package/dist/common/SelectionWrapper.d.ts +1 -1
  2. package/dist/components/Accordion/Accordion.d.ts +1 -1
  3. package/dist/components/Accordion/Accordion.stories.d.ts +1 -1
  4. package/dist/components/Banner/Banner.stories.d.ts +1 -1
  5. package/dist/components/Breadcrumbs/Breadcrumbs.stories.d.ts +1 -1
  6. package/dist/components/Button/Button.stories.d.ts +1 -1
  7. package/dist/components/Calendar/Calendar.stories.d.ts +2 -7
  8. package/dist/components/Calendar/Date.helper.d.ts +47 -12
  9. package/dist/components/Card/Card.stories.d.ts +1 -1
  10. package/dist/components/Checkbox/Checkbox.d.ts +1 -1
  11. package/dist/components/Checkbox/Checkbox.stories.d.ts +1 -1
  12. package/dist/components/Dialog/Dialog.stories.d.ts +1 -1
  13. package/dist/components/DragDropFile/DragDropFile.stories.d.ts +1 -1
  14. package/dist/components/Drawer/Drawer.stories.d.ts +1 -1
  15. package/dist/components/Dropdown/Dropdown.stories.d.ts +5 -2
  16. package/dist/components/EmptyState/EmptyState.stories.d.ts +1 -1
  17. package/dist/components/ErrorMessage/ErrorMessage.stories.d.ts +1 -1
  18. package/dist/components/HighlightMatch/HighlightMatch.stories.d.ts +1 -1
  19. package/dist/components/IconFactory/IconFactory.stories.d.ts +1 -1
  20. package/dist/components/Label/Label.d.ts +2 -2
  21. package/dist/components/Label/Label.stories.d.ts +1 -1
  22. package/dist/components/Layout/Box.d.ts +1 -1
  23. package/dist/components/Layout/Grid.d.ts +1 -1
  24. package/dist/components/Layout/Layout.stories.d.ts +1 -1
  25. package/dist/components/Layout/Sidebar.d.ts +1 -1
  26. package/dist/components/Layout/Switcher.d.ts +1 -1
  27. package/dist/components/Link/Link.stories.d.ts +1 -1
  28. package/dist/components/Link/useSafeLink.d.ts +1 -1
  29. package/dist/components/Loaders/LoadingBar.stories.d.ts +2 -2
  30. package/dist/components/Loaders/LoadingDots.stories.d.ts +1 -1
  31. package/dist/components/Loaders/Spinner.stories.d.ts +1 -1
  32. package/dist/components/Modal/Modal.stories.d.ts +1 -1
  33. package/dist/components/Pagination/Pagination.stories.d.ts +1 -1
  34. package/dist/components/Pagination/Pagination.types.d.ts +2 -2
  35. package/dist/components/Popover/Popover.stories.d.ts +1 -1
  36. package/dist/components/ProgressBar/ProgressBar.stories.d.ts +1 -1
  37. package/dist/components/Radio/Radio.d.ts +1 -1
  38. package/dist/components/Radio/Radio.stories.d.ts +1 -1
  39. package/dist/components/Section/Sections.stories.d.ts +1 -1
  40. package/dist/components/Select/Select.fixtures.d.ts +1 -1
  41. package/dist/components/Select/Select.stories.d.ts +1 -1
  42. package/dist/components/Select/Select.types.d.ts +2 -2
  43. package/dist/components/Select/SelectCreatableOption.d.ts +1 -1
  44. package/dist/components/Select/SelectEmpty.d.ts +1 -1
  45. package/dist/components/Select/components.d.ts +1 -1
  46. package/dist/components/Select/useSelectExternal.d.ts +1 -1
  47. package/dist/components/SideNavigation/SideNavigation.stories.d.ts +1 -1
  48. package/dist/components/Steps/Steps.d.ts +1 -1
  49. package/dist/components/Steps/Steps.stories.d.ts +1 -1
  50. package/dist/components/Steps/StepsStep.d.ts +1 -1
  51. package/dist/components/Switch/Switch.stories.d.ts +1 -1
  52. package/dist/components/Table/Table.stories.d.ts +1 -1
  53. package/dist/components/Table/Table.types.d.ts +3 -4
  54. package/dist/components/Table/TableSortHandle.d.ts +1 -1
  55. package/dist/components/TablePagination/RowsPerPage.d.ts +1 -1
  56. package/dist/components/TablePagination/TablePagination.stories.d.ts +1 -1
  57. package/dist/components/TablePagination/TablePagination.types.d.ts +1 -1
  58. package/dist/components/TablePagination/TablePaginationActions.d.ts +1 -1
  59. package/dist/components/Tag/Tag.stories.d.ts +1 -1
  60. package/dist/components/Text/Text.d.ts +1 -1
  61. package/dist/components/Text/Text.stories.d.ts +1 -1
  62. package/dist/components/TextField/TextField.d.ts +1 -1
  63. package/dist/components/TextField/TextField.stories.d.ts +1 -1
  64. package/dist/components/Textarea/Textarea.d.ts +1 -1
  65. package/dist/components/Textarea/Textarea.stories.d.ts +1 -1
  66. package/dist/components/Toast/Toast.stories.d.ts +1 -1
  67. package/dist/components/ToggleGroup/ToggleGroup.stories.d.ts +1 -1
  68. package/dist/components/Tooltip/Tooltip.d.ts +3 -2
  69. package/dist/components/Tooltip/Tooltip.stories.d.ts +1 -1
  70. package/dist/hooks/useFocusTrap/useFocusTrap.stories.d.ts +1 -1
  71. package/dist/hooks/useHeightExpansionToggler/useHeightExpansionToggler.d.ts +1 -1
  72. package/dist/index.js +339 -491
  73. package/dist/index.js.map +1 -1
  74. package/dist/styles/activatable.d.ts +1 -1
  75. package/dist/styles/disableable.d.ts +1 -1
  76. package/dist/styles/focusable.d.ts +1 -1
  77. package/dist/styles/hoverable.d.ts +1 -1
  78. package/dist/testing/getInterpolatedStyles/getInterpolatedStyles.d.ts +1 -1
  79. package/dist/testing/index.js.map +1 -1
  80. package/dist/tests/generator.d.ts +35 -0
  81. package/dist/tests/renderer.d.ts +10 -0
  82. package/dist/theming/index.d.ts +2 -2
  83. package/dist/theming/index.js.map +1 -1
  84. package/package.json +9 -10
  85. package/src/common/CloseButton/CloseButton.tsx +7 -11
  86. package/src/common/SelectionWrapper.tsx +8 -8
  87. package/src/components/Accordion/Accordion.stories.tsx +2 -2
  88. package/src/components/Accordion/Accordion.test.tsx +2 -2
  89. package/src/components/Accordion/Accordion.tsx +24 -29
  90. package/src/components/Banner/Banner.stories.tsx +1 -1
  91. package/src/components/Banner/Banner.test.tsx +2 -2
  92. package/src/components/Banner/Banner.tsx +2 -2
  93. package/src/components/Breadcrumbs/Breadbrumbs.test.tsx +2 -2
  94. package/src/components/Breadcrumbs/Breadcrumb.tsx +3 -4
  95. package/src/components/Breadcrumbs/Breadcrumbs.stories.tsx +1 -1
  96. package/src/components/Breadcrumbs/Breadcrumbs.tsx +1 -1
  97. package/src/components/Button/Button.stories.tsx +1 -1
  98. package/src/components/Button/Button.test.tsx +2 -2
  99. package/src/components/Button/Button.tsx +17 -20
  100. package/src/components/Calendar/Calendar.stories.tsx +4 -2
  101. package/src/components/Calendar/Calendar.test.tsx +3 -3
  102. package/src/components/Calendar/Calendar.tsx +4 -8
  103. package/src/components/Calendar/Date.helper.test.ts +463 -15
  104. package/src/components/Calendar/Date.helper.ts +106 -45
  105. package/src/components/Calendar/PickerModeToggle.tsx +3 -6
  106. package/src/components/Calendar/Pickers/DayPicker.test.tsx +2 -2
  107. package/src/components/Calendar/Pickers/DayPicker.tsx +1 -1
  108. package/src/components/Calendar/Pickers/MonthPicker.test.tsx +2 -2
  109. package/src/components/Calendar/Pickers/MonthPicker.tsx +1 -1
  110. package/src/components/Calendar/Pickers/PickerButton.tsx +29 -39
  111. package/src/components/Calendar/Pickers/YearPicker.test.tsx +9 -7
  112. package/src/components/Calendar/Pickers/YearPicker.tsx +1 -1
  113. package/src/components/Card/Card.stories.tsx +2 -2
  114. package/src/components/Card/Card.test.tsx +2 -2
  115. package/src/components/Card/Card.tsx +6 -9
  116. package/src/components/Card/CardTitle.tsx +3 -3
  117. package/src/components/Checkbox/Checkbox.stories.tsx +1 -1
  118. package/src/components/Checkbox/Checkbox.test.tsx +2 -2
  119. package/src/components/Checkbox/Checkbox.tsx +15 -27
  120. package/src/components/DatePicker/DatePicker.test.tsx +2 -2
  121. package/src/components/DatePicker/DateRangePicker.stories.tsx +6 -1
  122. package/src/components/DatePicker/DateRangePicker.test.tsx +2 -2
  123. package/src/components/Dialog/Dialog.stories.tsx +1 -1
  124. package/src/components/Dialog/Dialog.test.tsx +2 -2
  125. package/src/components/Dialog/Dialog.tsx +5 -5
  126. package/src/components/DragDropFile/DragDropFile.stories.tsx +1 -1
  127. package/src/components/DragDropFile/components/DropZone.test.tsx +1 -1
  128. package/src/components/DragDropFile/styles.tsx +6 -11
  129. package/src/components/Drawer/Drawer.stories.tsx +1 -1
  130. package/src/components/Drawer/Drawer.test.tsx +1 -1
  131. package/src/components/Drawer/Drawer.tsx +6 -6
  132. package/src/components/Dropdown/Dropdown.stories.tsx +11 -6
  133. package/src/components/Dropdown/Dropdown.test.tsx +14 -16
  134. package/src/components/Dropdown/DropdownMenu.tsx +15 -28
  135. package/src/components/Dropdown/DropdownTrigger.tsx +24 -34
  136. package/src/components/EmptyState/EmptyState.stories.tsx +1 -1
  137. package/src/components/EmptyState/EmptyState.test.tsx +1 -1
  138. package/src/components/ErrorMessage/ErrorMessage.stories.tsx +1 -1
  139. package/src/components/ErrorMessage/ErrorMessage.test.tsx +1 -1
  140. package/src/components/HighlightMatch/HighlightMatch.stories.tsx +1 -1
  141. package/src/components/HighlightMatch/HighlightMatch.test.tsx +2 -2
  142. package/src/components/HighlightMatch/HighlightMatch.tsx +1 -1
  143. package/src/components/IconFactory/IconFactory.stories.tsx +1 -1
  144. package/src/components/IconFactory/IconFactory.test.tsx +2 -2
  145. package/src/components/Label/Label.stories.tsx +1 -1
  146. package/src/components/Label/Label.test.tsx +2 -2
  147. package/src/components/Label/Label.tsx +5 -5
  148. package/src/components/Layout/Box.tsx +1 -1
  149. package/src/components/Layout/Grid.tsx +1 -1
  150. package/src/components/Layout/Layout.stories.tsx +1 -1
  151. package/src/components/Layout/Sidebar.tsx +1 -1
  152. package/src/components/Layout/Switcher.tsx +1 -1
  153. package/src/components/Link/Link.stories.tsx +1 -1
  154. package/src/components/Link/Link.test.tsx +2 -2
  155. package/src/components/Link/Link.tsx +9 -13
  156. package/src/components/Link/useSafeLink.ts +1 -1
  157. package/src/components/Loaders/LoadingBar.stories.tsx +3 -3
  158. package/src/components/Loaders/LoadingBar.test.tsx +1 -1
  159. package/src/components/Loaders/LoadingBar.tsx +2 -2
  160. package/src/components/Loaders/LoadingDots.stories.tsx +1 -1
  161. package/src/components/Loaders/LoadingDots.test.tsx +1 -1
  162. package/src/components/Loaders/Spinner.stories.tsx +1 -1
  163. package/src/components/Loaders/Spinner.test.tsx +2 -2
  164. package/src/components/Modal/Modal.stories.tsx +1 -1
  165. package/src/components/Modal/Modal.test.tsx +2 -2
  166. package/src/components/Modal/Modal.tsx +7 -12
  167. package/src/components/Pagination/Pagination.stories.tsx +1 -1
  168. package/src/components/Pagination/Pagination.test.tsx +2 -2
  169. package/src/components/Pagination/Pagination.types.ts +2 -2
  170. package/src/components/Popover/Popover.stories.tsx +1 -1
  171. package/src/components/Popover/Popover.test.tsx +2 -2
  172. package/src/components/ProgressBar/ProgressBar.stories.tsx +1 -1
  173. package/src/components/ProgressBar/ProgressBar.test.tsx +1 -1
  174. package/src/components/ProgressBar/ProgressBar.tsx +4 -6
  175. package/src/components/Radio/Radio.stories.tsx +1 -1
  176. package/src/components/Radio/Radio.test.tsx +2 -2
  177. package/src/components/Radio/Radio.tsx +12 -20
  178. package/src/components/Section/Section.test.tsx +2 -2
  179. package/src/components/Section/Section.tsx +6 -8
  180. package/src/components/Section/Sections.stories.tsx +2 -2
  181. package/src/components/Select/Select.fixtures.ts +2 -2
  182. package/src/components/Select/Select.stories.tsx +3 -3
  183. package/src/components/Select/Select.test.tsx +12 -5
  184. package/src/components/Select/Select.types.ts +2 -2
  185. package/src/components/Select/SelectCreatableOption.tsx +1 -1
  186. package/src/components/Select/SelectEmpty.tsx +5 -6
  187. package/src/components/Select/SelectOption.test.tsx +1 -1
  188. package/src/components/Select/SelectTrigger.tsx +6 -11
  189. package/src/components/Select/components.tsx +1 -1
  190. package/src/components/Select/useSelect.helpers.test.ts +1 -1
  191. package/src/components/Select/useSelect.ts +1 -1
  192. package/src/components/Select/useSelectExternal.ts +1 -1
  193. package/src/components/SideNavigation/Logo/Logo.test.tsx +2 -2
  194. package/src/components/SideNavigation/Menu/Menu.test.tsx +3 -3
  195. package/src/components/SideNavigation/Menu/Menu.tsx +3 -3
  196. package/src/components/SideNavigation/Menu/MenuBaseItem.tsx +4 -5
  197. package/src/components/SideNavigation/Menu/MenuExpandable.tsx +2 -3
  198. package/src/components/SideNavigation/Separator/Separator.test.tsx +1 -1
  199. package/src/components/SideNavigation/SideNavigation.stories.tsx +1 -1
  200. package/src/components/SideNavigation/SideNavigation.test.tsx +2 -2
  201. package/src/components/Steps/ProgressSteps/ProgressStep.tsx +31 -39
  202. package/src/components/Steps/Steps.fixtures.ts +1 -1
  203. package/src/components/Steps/Steps.stories.tsx +1 -1
  204. package/src/components/Steps/Steps.test.tsx +2 -2
  205. package/src/components/Steps/Steps.tsx +2 -1
  206. package/src/components/Steps/StepsStep.tsx +2 -1
  207. package/src/components/Steps/useStep.test.tsx +1 -1
  208. package/src/components/Switch/Switch.stories.tsx +1 -1
  209. package/src/components/Switch/Switch.test.tsx +1 -1
  210. package/src/components/Switch/Switch.tsx +6 -18
  211. package/src/components/Table/Table.fixtures.ts +1 -1
  212. package/src/components/Table/Table.stories.tsx +1 -1
  213. package/src/components/Table/Table.test.tsx +1 -1
  214. package/src/components/Table/Table.tsx +2 -2
  215. package/src/components/Table/Table.types.ts +9 -4
  216. package/src/components/Table/TableSortHandle.tsx +1 -1
  217. package/src/components/TablePagination/RowsPerPage.tsx +2 -2
  218. package/src/components/TablePagination/TablePagination.stories.tsx +1 -1
  219. package/src/components/TablePagination/TablePagination.test.tsx +2 -2
  220. package/src/components/TablePagination/TablePagination.types.ts +1 -1
  221. package/src/components/TablePagination/TablePaginationActions.tsx +1 -1
  222. package/src/components/Tabs/Tabs.test.tsx +1 -1
  223. package/src/components/Tabs/Tabs.tsx +26 -32
  224. package/src/components/Tag/Tag.stories.tsx +2 -2
  225. package/src/components/Tag/Tag.test.tsx +2 -2
  226. package/src/components/Tag/Tag.tsx +35 -44
  227. package/src/components/Text/Text.stories.tsx +1 -1
  228. package/src/components/Text/Text.test.tsx +2 -2
  229. package/src/components/Text/Text.tsx +1 -1
  230. package/src/components/TextField/TextField.stories.tsx +1 -1
  231. package/src/components/TextField/TextField.test.tsx +1 -1
  232. package/src/components/TextField/TextField.tsx +16 -23
  233. package/src/components/Textarea/Textarea.stories.tsx +1 -1
  234. package/src/components/Textarea/Textarea.test.tsx +1 -1
  235. package/src/components/Textarea/Textarea.tsx +18 -23
  236. package/src/components/Toast/Toast.stories.tsx +1 -1
  237. package/src/components/Toast/Toast.test.tsx +2 -2
  238. package/src/components/Toast/Toast.tsx +3 -3
  239. package/src/components/ToggleGroup/Toggle.test.tsx +2 -2
  240. package/src/components/ToggleGroup/Toggle.tsx +7 -7
  241. package/src/components/ToggleGroup/ToggleGroup.stories.tsx +1 -1
  242. package/src/components/ToggleGroup/ToggleGroup.test.tsx +2 -2
  243. package/src/components/Tooltip/Tooltip.stories.tsx +1 -1
  244. package/src/components/Tooltip/Tooltip.test.tsx +2 -2
  245. package/src/components/Tooltip/Tooltip.tsx +23 -24
  246. package/src/components/TopNavigation/Logo/Logo.test.tsx +2 -2
  247. package/src/components/TopNavigation/Menu/Menu.test.tsx +1 -1
  248. package/src/components/TopNavigation/Menu/MenuItemDropdown.tsx +1 -1
  249. package/src/components/TopNavigation/OpenSideNavButton/OpenSideNavButton.tsx +1 -1
  250. package/src/components/VisuallyHidden/VisuallyHidden.test.tsx +1 -1
  251. package/src/hooks/useClickOutside/useClickOutside.test.tsx +1 -1
  252. package/src/hooks/useDidMount/useDidMount.test.tsx +1 -1
  253. package/src/hooks/useFocusTrap/useFocusTrap.stories.tsx +1 -1
  254. package/src/hooks/useFocusTrap/useFocusTrap.test.tsx +1 -1
  255. package/src/hooks/useFocusWithin/useFocusWithin.test.tsx +1 -1
  256. package/src/hooks/useHeightExpansionToggler/useHeightExpansionToggler.test.tsx +1 -1
  257. package/src/hooks/useHeightExpansionToggler/useHeightExpansionToggler.ts +1 -1
  258. package/src/hooks/useSelectable/SelectableStrategy.test.ts +1 -1
  259. package/src/hooks/useSelectable/useSelectable.test.ts +1 -1
  260. package/src/styles/activatable.tsx +1 -1
  261. package/src/styles/disableable.tsx +1 -1
  262. package/src/styles/focusable.tsx +1 -1
  263. package/src/styles/font.tsx +3 -3
  264. package/src/styles/hoverable.tsx +1 -1
  265. package/src/testing/SelectEvent/SelectEvent.test.tsx +2 -2
  266. package/src/testing/getInterpolatedStyles/getInterpolatedStyles.ts +1 -1
  267. package/src/tests/generator.ts +127 -0
  268. package/src/tests/renderer.tsx +39 -0
  269. package/src/theming/index.ts +3 -2
  270. package/src/tools/conditional.test.ts +1 -1
  271. package/src/utils/toolset/interleave.test.ts +1 -1
@@ -0,0 +1,35 @@
1
+ /// <reference types="chance" />
2
+ interface DataGenerator {
3
+ animal: () => string;
4
+ array: <T>(template: ({ index }: {
5
+ index: number;
6
+ }) => T, amount?: number) => Array<T>;
7
+ boolean: () => boolean;
8
+ company: () => string;
9
+ date: () => string;
10
+ float: (opts?: Chance.Options) => number;
11
+ id: () => string;
12
+ name: (opts?: Chance.Options) => string;
13
+ natural: (opts?: Chance.Options) => number;
14
+ paragraph: (opts?: Chance.Options) => string;
15
+ /**
16
+ * @deprecated Use pickone or pickset
17
+ */
18
+ pick: <T>(array: Array<T>, options?: {
19
+ amount: number;
20
+ allowRepeat?: boolean;
21
+ }) => T | Array<T>;
22
+ pickone<T>(arr: T[]): T;
23
+ pickset<T>(arr: T[], count?: number): T[];
24
+ profession: () => string;
25
+ sentence: (opts?: Chance.Options) => string;
26
+ state: (opts?: Chance.Options) => string;
27
+ time: (opts?: Chance.Options) => string;
28
+ token: () => string;
29
+ url: () => string;
30
+ username: () => string;
31
+ word: (opts?: Chance.Options) => string;
32
+ dollar: () => string;
33
+ }
34
+ declare const generators: DataGenerator;
35
+ export default generators;
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import { fireEvent, RenderOptions, within, waitFor, waitForElementToBeRemoved, act, screen, queries } from '@testing-library/react';
3
+ import userEvent from '@testing-library/user-event';
4
+ declare class Renderer {
5
+ result: React.ReactElement;
6
+ constructor(children: React.ReactElement);
7
+ render(options?: Omit<RenderOptions, 'queries'>): import("@testing-library/react").RenderResult<typeof queries, HTMLElement>;
8
+ }
9
+ export default function customRenderer(children: React.ReactElement): Renderer;
10
+ export { act, fireEvent as fire, queries, screen, userEvent as user, waitFor, waitForElementToBeRemoved, within, };
@@ -1,5 +1,5 @@
1
- import { ThemeProps } from 'styled-components';
2
- import ThemeAlice from './themes/alice.theme';
1
+ import type { ThemeProps } from 'styled-components';
2
+ import type ThemeAlice from './themes/alice.theme';
3
3
  export declare type ThemeToken = keyof typeof ThemeAlice;
4
4
  export declare type ThemeTokenValue = string | number;
5
5
  export declare type CustomTheme = Record<ThemeToken, ThemeTokenValue>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/theming/index.ts"],"sourcesContent":["import { ThemeProps } from 'styled-components'\nimport { isFunction } from '@loadsmart/utils-function'\nimport ThemeAlice from './themes/alice.theme'\n\nexport type ThemeToken = keyof typeof ThemeAlice\nexport type ThemeTokenValue = string | number\n\nexport type CustomTheme = Record<ThemeToken, ThemeTokenValue>\nexport type ThemedProps = ThemeProps<CustomTheme>\n\ntype TokenLike<P extends ThemedProps = ThemedProps> = ThemeToken | ((props: P) => ThemeToken)\n\nfunction getTokenFromTheme<P extends ThemedProps>(token: TokenLike<P>, props: P): ThemeTokenValue {\n const tokenName = isFunction(token) ? token(props) : token\n return props.theme[tokenName]\n}\n\n/**\n * Return a design token value for the current theme.\n * @param {string} token - Token whose value should be returned.\n * @param {[ThemedStyledProps]} props - Component props.\n * @returns {ThemeTokenValue} Token value or `undefined` if the token was not found for the current theme.\n */\nexport function getToken<TProps extends ThemedProps>(\n token: TokenLike<TProps>\n): (props: TProps) => ThemeTokenValue\n\nexport function getToken<TProps extends ThemedProps>(\n token: TokenLike<TProps>,\n props: TProps\n): ThemeTokenValue\n\nexport function getToken<TProps extends ThemedProps>(token: any, props?: any): any {\n if (props === undefined) {\n return (props: TProps) => getTokenFromTheme(token, props)\n }\n\n return getTokenFromTheme(token, props)\n}\n\nexport * as Themes from './themes'\n"],"names":["getTokenFromTheme","token","props","tokenName","isFunction","theme","undefined"],"mappings":"0LAYA,SAASA,EAAyCC,EAAqBC,GACrE,MAAMC,EAAYC,aAAWH,GAASA,EAAMC,GAASD,EACrD,OAAOC,EAAMG,MAAMF,8CAkBgCF,EAAYC,GAC/D,YAAcI,IAAVJ,EACMA,GAAkBF,EAAkBC,EAAOC,GAG9CF,EAAkBC,EAAOC"}
1
+ {"version":3,"file":"index.js","sources":["../../src/theming/index.ts"],"sourcesContent":["import { isFunction } from '@loadsmart/utils-function'\n\nimport type { ThemeProps } from 'styled-components'\nimport type ThemeAlice from './themes/alice.theme'\n\nexport type ThemeToken = keyof typeof ThemeAlice\nexport type ThemeTokenValue = string | number\n\nexport type CustomTheme = Record<ThemeToken, ThemeTokenValue>\nexport type ThemedProps = ThemeProps<CustomTheme>\n\ntype TokenLike<P extends ThemedProps = ThemedProps> = ThemeToken | ((props: P) => ThemeToken)\n\nfunction getTokenFromTheme<P extends ThemedProps>(token: TokenLike<P>, props: P): ThemeTokenValue {\n const tokenName = isFunction(token) ? token(props) : token\n return props.theme[tokenName]\n}\n\n/**\n * Return a design token value for the current theme.\n * @param {string} token - Token whose value should be returned.\n * @param {[ThemedStyledProps]} props - Component props.\n * @returns {ThemeTokenValue} Token value or `undefined` if the token was not found for the current theme.\n */\nexport function getToken<TProps extends ThemedProps>(\n token: TokenLike<TProps>\n): (props: TProps) => ThemeTokenValue\n\nexport function getToken<TProps extends ThemedProps>(\n token: TokenLike<TProps>,\n props: TProps\n): ThemeTokenValue\n\nexport function getToken<TProps extends ThemedProps>(token: any, props?: any): any {\n if (props === undefined) {\n return (props: TProps) => getTokenFromTheme(token, props)\n }\n\n return getTokenFromTheme(token, props)\n}\n\nexport * as Themes from './themes'\n"],"names":["getTokenFromTheme","token","props","tokenName","isFunction","theme","undefined"],"mappings":"0LAaA,SAASA,EAAyCC,EAAqBC,GACrE,MAAMC,EAAYC,aAAWH,GAASA,EAAMC,GAASD,EACrD,OAAOC,EAAMG,MAAMF,8CAkBgCF,EAAYC,GAC/D,YAAcI,IAAVJ,EACMA,GAAkBF,EAAkBC,EAAOC,GAG9CF,EAAkBC,EAAOC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loadsmart/loadsmart-ui",
3
- "version": "5.10.0",
3
+ "version": "5.11.0",
4
4
  "description": "Miranda UI, a React UI library",
5
5
  "main": "dist",
6
6
  "files": [
@@ -78,7 +78,7 @@
78
78
  "@babel/preset-typescript": "7.13.0",
79
79
  "@commitlint/cli": "16.0.2",
80
80
  "@commitlint/config-conventional": "16.0.0",
81
- "@loadsmart/stylelint-config": "0.0.3",
81
+ "@loadsmart/stylelint-config": "^1.2.1-beta.1",
82
82
  "@rollup/plugin-babel": "5.3.0",
83
83
  "@rollup/plugin-commonjs": "19.0.0",
84
84
  "@rollup/plugin-json": "4.1.0",
@@ -158,12 +158,7 @@
158
158
  "rollup-plugin-visualizer": "^5.5.2",
159
159
  "semantic-release": "17.4.2",
160
160
  "styled-components": "5.3.0",
161
- "stylelint": "13.13.1",
162
- "stylelint-config-prettier": "8.0.2",
163
- "stylelint-config-rational-order": "0.1.2",
164
- "stylelint-config-recommended": "5.0.0",
165
- "stylelint-no-unsupported-browser-features": "5.0.1",
166
- "stylelint-order": "4.1.0",
161
+ "stylelint": "^13.13.1",
167
162
  "tailwindcss": "npm:@tailwindcss/postcss7-compat",
168
163
  "ts-jest": "26.5.6",
169
164
  "ts-toolbelt": "^9.6.0",
@@ -175,8 +170,8 @@
175
170
  "@testing-library/dom": ">=5.12.0",
176
171
  "@testing-library/react": ">=11.2.6",
177
172
  "prop-types": ">=15.7.2",
178
- "react": ">=17.0.2",
179
- "react-dom": ">=17.0.2",
173
+ "react": ">=16.8.0",
174
+ "react-dom": ">=16.8.0",
180
175
  "styled-components": ">=5.3.0"
181
176
  },
182
177
  "dependencies": {
@@ -191,6 +186,10 @@
191
186
  "lodash.omit": "4.5.0",
192
187
  "lodash.range": "3.2.0"
193
188
  },
189
+ "browserslist": [
190
+ "last 1 chrome version",
191
+ "last 1 firefox version"
192
+ ],
194
193
  "repository": {
195
194
  "type": "git",
196
195
  "url": "https://github.com/loadsmart/miranda.git"
@@ -14,17 +14,6 @@ export interface CloseButtonProps extends ButtonProps {
14
14
  }
15
15
 
16
16
  const Button = styled(BaseButton)`
17
- border: none;
18
- border-radius: ${token('border-radius-circle')};
19
-
20
- color: ${token('color-neutral-darker')};
21
-
22
- background: ${token('color-transparent')};
23
-
24
- padding: ${token('space-xs')};
25
-
26
- font-size: ${token('font-size-3')};
27
-
28
17
  /*
29
18
  * button height is set in the BaseButton component
30
19
  * we set width here to ensure a perfectly rounded button
@@ -34,6 +23,13 @@ const Button = styled(BaseButton)`
34
23
  'button-small-height': whenProps({ scale: 'small' }),
35
24
  'button-large-height': whenProps({ scale: 'large' }),
36
25
  })};
26
+ padding: ${token('space-xs')};
27
+ font-size: ${token('font-size-3')};
28
+ color: ${token('color-neutral-darker')};
29
+ background: ${token('color-transparent')};
30
+
31
+ border: none;
32
+ border-radius: ${token('border-radius-circle')};
37
33
 
38
34
  ${focusable`
39
35
  box-shadow: ${token('button-icon-outline')};
@@ -2,7 +2,7 @@ import React, { LabelHTMLAttributes, ReactNode } from 'react'
2
2
  import clsx from 'clsx'
3
3
  import styled from 'styled-components'
4
4
 
5
- import ColorScheme from 'utils/types/ColorScheme'
5
+ import type ColorScheme from 'utils/types/ColorScheme'
6
6
  import conditional, { whenProps } from 'tools/conditional'
7
7
  import disableable from 'styles/disableable'
8
8
  import font from 'styles/font'
@@ -54,18 +54,11 @@ const Children = styled.span`
54
54
  const StyledLabel = styled.label<SelectionStyleProps>`
55
55
  box-sizing: border-box;
56
56
 
57
- ${transition()}
58
- ${font({
59
- weight: 'checkbox-font-weight',
60
- })}
61
-
62
57
  display: inline-flex;
63
58
  flex-flow: row nowrap;
64
59
  align-items: center;
65
60
  justify-content: flex-start;
66
61
 
67
- cursor: pointer;
68
-
69
62
  font-size: ${conditional({
70
63
  'checkbox-font-size': whenProps({ scale: 'default' }),
71
64
  'checkbox-small-font-size': whenProps({ scale: 'small' }),
@@ -76,6 +69,13 @@ const StyledLabel = styled.label<SelectionStyleProps>`
76
69
  'checkbox-dark-color': whenProps({ scheme: 'dark' }),
77
70
  })};
78
71
 
72
+ cursor: pointer;
73
+
74
+ ${transition()}
75
+ ${font({
76
+ weight: 'checkbox-font-weight',
77
+ })}
78
+
79
79
  ${Children} {
80
80
  margin: 0 ${token('space-xs')};
81
81
  }
@@ -1,11 +1,11 @@
1
1
  import React, { useState } from 'react'
2
- import { Meta } from '@storybook/react/types-6-0'
2
+ import type { Meta } from '@storybook/react/types-6-0'
3
3
  import Accordion from './Accordion'
4
4
  import type { AccordionProps } from './Accordion'
5
5
 
6
6
  import { Icon } from 'components/Icon'
7
7
 
8
- import generator from '../../../tests/generator'
8
+ import generator from '../../tests/generator'
9
9
 
10
10
  export default {
11
11
  title: 'Components/Accordion',
@@ -1,8 +1,8 @@
1
1
  import userEvent from '@testing-library/user-event'
2
2
  import React from 'react'
3
3
 
4
- import generator from '../../../tests/generator'
5
- import renderer, { fire, screen } from '../../../tests/renderer'
4
+ import generator from '../../tests/generator'
5
+ import renderer, { fire, screen } from '../../tests/renderer'
6
6
 
7
7
  import Accordion from './Accordion'
8
8
 
@@ -1,4 +1,5 @@
1
- import React, { Fragment, HTMLAttributes, PropsWithChildren, ReactNode } from 'react'
1
+ import React, { Fragment } from 'react'
2
+ import type { PropsWithChildren, HTMLAttributes, ReactNode } from 'react'
2
3
  import clsx from 'clsx'
3
4
  import styled from 'styled-components'
4
5
  import { identity, isFunction } from '@loadsmart/utils-function'
@@ -30,70 +31,64 @@ const StyledWrapper = styled.article<{ open: boolean }>`
30
31
  `
31
32
 
32
33
  const StyledToggle = styled.button<{ open: boolean }>`
33
- ${font({
34
- height: 'font-height-2',
35
- })}
36
-
37
- ${transition()}
38
-
39
34
  display: flex;
40
35
  flex-direction: row;
41
- justify-content: flex-start;
42
36
  align-items: center;
37
+ justify-content: flex-start;
38
+
39
+ width: 100%;
40
+ padding: ${token('space-s')} ${token('space-m')};
43
41
 
44
42
  font-size: ${token('font-size-3')};
45
43
  font-weight: ${conditional({
46
44
  'font-weight-regular': whenProps({ open: false }),
47
45
  'font-weight-bold': whenProps({ open: true }),
48
46
  })};
49
- text-align: left;
50
-
51
- cursor: pointer;
52
47
 
53
48
  color: ${token('color-neutral-darker')};
54
-
49
+ text-align: left;
50
+ cursor: pointer;
55
51
  background-color: ${token('color-transparent')};
56
- border-radius: ${token('border-radius-s')};
57
52
  border: none;
53
+ border-radius: ${token('border-radius-s')};
58
54
 
59
- padding: ${token('space-s')} ${token('space-m')};
60
-
61
- width: 100%;
62
-
55
+ ${font({
56
+ height: 'font-height-2',
57
+ })}
58
+ ${transition()}
63
59
  ${hoverable`
64
60
  background: ${token('color-neutral-lighter')};
65
61
  `}
66
-
67
62
  ${focusable`
68
63
  box-shadow: ${token('shadow-glow-primary')};
69
64
  `}
70
65
  `
71
66
 
72
67
  const StyledContent = styled.section<{ open: boolean }>`
73
- ${font({
74
- height: 'font-height-2',
75
- weight: 'font-weight-medium',
76
- })}
77
-
78
- padding-left: ${conditional({
68
+ padding-top: ${conditional({
79
69
  '0': whenProps({ open: false }),
80
- 'space-m': whenProps({ open: true }),
70
+ 'space-xl': whenProps({ open: true }),
81
71
  })};
82
72
  padding-right: ${conditional({
83
73
  '0': whenProps({ open: false }),
84
74
  'space-m': whenProps({ open: true }),
85
75
  })};
86
- padding-top: ${conditional({
87
- '0': whenProps({ open: false }),
88
- 'space-xl': whenProps({ open: true }),
89
- })};
90
76
  padding-bottom: ${conditional({
91
77
  '0': whenProps({ open: false }),
92
78
  'space-s': whenProps({ open: true }),
93
79
  })};
80
+ padding-left: ${conditional({
81
+ '0': whenProps({ open: false }),
82
+ 'space-m': whenProps({ open: true }),
83
+ })};
94
84
 
95
85
  overflow-x: hidden;
96
86
  overflow-y: auto;
87
+
88
+ ${font({
89
+ height: 'font-height-2',
90
+ weight: 'font-weight-medium',
91
+ })}
97
92
  `
98
93
 
99
94
  const HiddenInput = styled.input`
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { Meta } from '@storybook/react/types-6-0'
2
+ import type { Meta } from '@storybook/react/types-6-0'
3
3
  import Banner, { BannerLarge, BannerAction, BannerActionLarge } from './Banner'
4
4
  import type { BannerProps, BannerActionProps } from './Banner'
5
5
  import { Icon } from 'components/Icon'
@@ -1,8 +1,8 @@
1
1
  import React from 'react'
2
2
  import userEvent from '@testing-library/user-event'
3
3
 
4
- import generator from '../../../tests/generator'
5
- import renderer, { screen } from '../../../tests/renderer'
4
+ import generator from '../../tests/generator'
5
+ import renderer, { screen } from '../../tests/renderer'
6
6
 
7
7
  import Banner from './Banner'
8
8
  import { BannerAction } from './Banner'
@@ -32,15 +32,15 @@ interface VariantProps {
32
32
  }
33
33
 
34
34
  const Description = styled.div`
35
- color: ${token('banner-description-color')};
36
35
  font-size: ${token('banner-font-size')};
37
36
  line-height: ${token('banner-font-height')};
37
+ color: ${token('banner-description-color')};
38
38
  text-align: left;
39
39
  `
40
40
 
41
41
  const Title = styled.div<VariantProps>`
42
- font-weight: ${token('banner-title-font-weight')};
43
42
  font-size: ${token('banner-font-size')};
43
+ font-weight: ${token('banner-title-font-weight')};
44
44
  line-height: ${token('banner-font-height')};
45
45
  text-align: left;
46
46
  `
@@ -1,8 +1,8 @@
1
1
  import React from 'react'
2
2
  import Breadcrumbs from './Breadcrumbs'
3
3
  import { fireEvent, screen } from '@testing-library/react'
4
- import generator from '../../../tests/generator'
5
- import renderer from '../../../tests/renderer'
4
+ import generator from '../../tests/generator'
5
+ import renderer from '../../tests/renderer'
6
6
 
7
7
  const setup = ({ ...overrides }) => renderer(<Breadcrumbs entries={[]} {...overrides} />).render()
8
8
 
@@ -31,12 +31,11 @@ const StyledLi = styled.li<BreadcrumbProps>`
31
31
  display: inline-flex;
32
32
  align-items: center;
33
33
 
34
+ font-size: ${token('breadcrumbs-font-size')};
34
35
  font-weight: ${conditional({
35
36
  'breadcrumbs-font-weight': whenProps({ active: false }),
36
37
  'breadcrumbs-font-weight--active': whenProps({ active: true }),
37
38
  })};
38
-
39
- font-size: ${token('breadcrumbs-font-size')};
40
39
  line-height: ${token('breadcrumbs-font-height')};
41
40
 
42
41
  & + & {
@@ -46,9 +45,9 @@ const StyledLi = styled.li<BreadcrumbProps>`
46
45
  &:not(:only-child):not(:last-child)::after {
47
46
  position: absolute;
48
47
  left: calc(100% + 14px);
48
+ font-size: ${token('breadcrumbs-font-size')};
49
49
 
50
50
  font-weight: ${token('font-weight-bold')};
51
- font-size: ${token('breadcrumbs-font-size')};
52
51
 
53
52
  line-height: ${token('breadcrumbs-font-height')};
54
53
 
@@ -68,7 +67,7 @@ function getWrappedLabel(props: Partial<BreadcrumbProps>) {
68
67
  href={url}
69
68
  target="_self"
70
69
  onClick={onClick}
71
- {...(active && {'aria-current': 'page'})}
70
+ {...(active && { 'aria-current': 'page' })}
72
71
  {...rest}
73
72
  >
74
73
  {label}
@@ -1,6 +1,6 @@
1
1
  import React from 'react'
2
2
  import Breadcrumbs, { BreadcrumbsProps } from './Breadcrumbs'
3
- import { Story, Meta } from '@storybook/react/types-6-0'
3
+ import type { Story, Meta } from '@storybook/react/types-6-0'
4
4
 
5
5
  export default {
6
6
  title: 'Components/Breadcrumbs',
@@ -20,9 +20,9 @@ const StyledWrapper = styled.nav`
20
20
  const StyledOl = styled.ol`
21
21
  display: flex;
22
22
  flex-direction: row;
23
- margin: 0;
24
23
 
25
24
  padding: 0;
25
+ margin: 0;
26
26
 
27
27
  list-style: none;
28
28
  `
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import { Meta } from '@storybook/react/types-6-0'
2
+ import type { Meta } from '@storybook/react/types-6-0'
3
3
  import BackButton from '../../common/BackButton'
4
4
  import Button, { SelectorButton, IconButton, Caret, BaseButton } from './Button'
5
5
  import CloseButton from '../../common/CloseButton'
@@ -1,8 +1,8 @@
1
1
  import React from 'react'
2
2
  import { screen } from '@testing-library/react'
3
3
 
4
- import generator from '../../../tests/generator'
5
- import renderer from '../../../tests/renderer'
4
+ import generator from '../../tests/generator'
5
+ import renderer from '../../tests/renderer'
6
6
 
7
7
  import Button from './Button'
8
8
 
@@ -68,16 +68,6 @@ const BaseStyledButton = styled.button<{
68
68
  $scale: ButtonProps['scale']
69
69
  $loading?: ButtonProps['loading']
70
70
  }>`
71
- ${transition()}
72
-
73
- ${typography(
74
- conditional({
75
- 'button-md': whenProps({ $scale: 'default' }),
76
- 'button-sm': whenProps({ $scale: 'small' }),
77
- 'button-lg': whenProps({ $scale: 'large' }),
78
- })
79
- )}
80
-
81
71
  box-sizing: border-box;
82
72
 
83
73
  display: inline-flex;
@@ -85,16 +75,6 @@ const BaseStyledButton = styled.button<{
85
75
  align-items: center;
86
76
  justify-content: center;
87
77
 
88
- text-transform: uppercase;
89
- text-align: center;
90
-
91
- cursor: pointer;
92
-
93
- border-radius: ${token('border-radius-s')};
94
- border-width: ${token('border-width-thin')};
95
- border-style: solid;
96
- border-color: ${token('color-neutral-darker')};
97
-
98
78
  height: ${conditional({
99
79
  'button-height': whenProps({ $scale: 'default' }),
100
80
  'button-small-height': whenProps({ $scale: 'small' }),
@@ -102,8 +82,25 @@ const BaseStyledButton = styled.button<{
102
82
  })};
103
83
 
104
84
  padding: 0 8px;
85
+ text-align: center;
86
+ text-transform: uppercase;
87
+
88
+ cursor: pointer;
89
+
90
+ border-color: ${token('color-neutral-darker')};
91
+ border-style: solid;
92
+ border-width: ${token('border-width-thin')};
93
+ border-radius: ${token('border-radius-s')};
105
94
 
106
95
  ${disableable()}
96
+ ${transition()}
97
+ ${typography(
98
+ conditional({
99
+ 'button-md': whenProps({ $scale: 'default' }),
100
+ 'button-sm': whenProps({ $scale: 'small' }),
101
+ 'button-lg': whenProps({ $scale: 'large' }),
102
+ })
103
+ )}
107
104
 
108
105
  ${({ $loading }) => $loading && 'pointer-events: none;'}
109
106
 
@@ -1,5 +1,5 @@
1
1
  import React from 'react'
2
- import type { Meta } from '@storybook/react/types-6-0'
2
+ import type { Story, Meta } from '@storybook/react/types-6-0'
3
3
 
4
4
  import { TODAY } from './Date.helper'
5
5
  import Calendar from './Calendar'
@@ -41,7 +41,7 @@ export default {
41
41
  },
42
42
  } as Meta
43
43
 
44
- export function Playground(args: CalendarProps): JSX.Element {
44
+ const Template: Story<CalendarProps> = (args): JSX.Element => {
45
45
  return (
46
46
  <div className="flex flex-col">
47
47
  <Calendar {...args} />
@@ -49,6 +49,8 @@ export function Playground(args: CalendarProps): JSX.Element {
49
49
  )
50
50
  }
51
51
 
52
+ export const Playground = Template.bind({})
53
+
52
54
  Playground.args = {
53
55
  mode: 'single',
54
56
  }
@@ -7,9 +7,9 @@ import { TODAY } from './Date.helper'
7
7
  import * as stories from './Calendar.stories'
8
8
  import DateFormatHelper from './DateFormat.helper'
9
9
  import DateHelper from './Date.helper'
10
- import generator from '../../../tests/generator'
10
+ import generator from '../../tests/generator'
11
11
  import MonthHelper, { MONTH_BY_NAME } from './Month.helper'
12
- import renderer, { screen, fire } from '../../../tests/renderer'
12
+ import renderer, { screen, fire } from '../../tests/renderer'
13
13
 
14
14
  import type { CalendarConstraint } from './Date.helper'
15
15
  import type { CalendarMonthAlias } from './Month.helper'
@@ -209,7 +209,7 @@ describe('Calendar', () => {
209
209
  const startDate = DateHelper(Date.UTC(year, startMonth, startDay))
210
210
  const endDate = DateHelper(Date.UTC(year, endMonth, endDay))
211
211
 
212
- const props = {
212
+ const props: Partial<CalendarProps> = {
213
213
  mode: 'range',
214
214
  month: startMonth,
215
215
  year,
@@ -23,23 +23,19 @@ const Container = styled(Stack)`
23
23
  `
24
24
 
25
25
  const BorderlessButton = styled(BaseButton)`
26
- ${typography('body-bold')}
27
- border-color: transparent;
28
- background-color: transparent;
29
-
30
26
  color: ${token('color-neutral')};
31
-
32
- inline-size: 40px;
33
-
34
27
  visibility: ${conditional({
35
28
  visible: whenProps({ 'aria-hidden': false }),
36
29
  hidden: whenProps({ 'aria-hidden': true }),
37
30
  })};
31
+ background-color: transparent;
32
+ border-color: transparent;
33
+ inline-size: 40px;
38
34
 
35
+ ${typography('body-bold')}
39
36
  ${hoverable`
40
37
  color: ${token('color-neutral-dark')};
41
38
  `}
42
-
43
39
  ${focusable`
44
40
  box-shadow: ${token('button-primary-outline')};
45
41
  `}