@graphcommerce/next-ui 9.0.4-canary.8 → 9.1.0-canary.15

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # Change Log
2
2
 
3
+ ## 9.1.0-canary.15
4
+
5
+ ### Patch Changes
6
+
7
+ - [#2493](https://github.com/graphcommerce-org/graphcommerce/pull/2493) [`a34c276`](https://github.com/graphcommerce-org/graphcommerce/commit/a34c276b69f9ff1a727023eef64f2db8b196864c) - Added lots of missing icon exports ([@paales](https://github.com/paales))
8
+
9
+ - [#2493](https://github.com/graphcommerce-org/graphcommerce/pull/2493) [`2a09ca9`](https://github.com/graphcommerce-org/graphcommerce/commit/2a09ca933e0de88dc32dac5ae62f41b0e5953359) - Intl components now accept the sx prop. `<RelativeToTimeFormat />` now expects a date prop instead of children. ([@paales](https://github.com/paales))
10
+
11
+ - [#2493](https://github.com/graphcommerce-org/graphcommerce/pull/2493) [`05a1744`](https://github.com/graphcommerce-org/graphcommerce/commit/05a1744ddeca31c4d24128fd5cd2513a7c491d5b) - Added search params to NextLink whenever present ([@paales](https://github.com/paales))
12
+
13
+ ## 9.0.4-canary.14
14
+
15
+ ## 9.0.4-canary.13
16
+
17
+ ## 9.0.4-canary.12
18
+
19
+ ## 9.0.4-canary.11
20
+
21
+ ### Patch Changes
22
+
23
+ - [#2485](https://github.com/graphcommerce-org/graphcommerce/pull/2485) [`b0ec078`](https://github.com/graphcommerce-org/graphcommerce/commit/b0ec0784a0b3ca977598ded3777d23bc929072b0) - Added a CurrencySymbol component that renders the current currency symbol ([@paales](https://github.com/paales))
24
+
25
+ ## 9.0.4-canary.10
26
+
27
+ ## 9.0.4-canary.9
28
+
3
29
  ## 9.0.4-canary.8
4
30
 
5
31
  ## 9.0.4-canary.7
@@ -0,0 +1,22 @@
1
+ import { Box, type SxProps, type Theme } from '@mui/material'
2
+ import { forwardRef } from 'react'
3
+ import {
4
+ useIntlNumberFormat,
5
+ type UseIntlNumberFormatOptions,
6
+ } from '../NumberFormat/useIntlNumberFormat'
7
+
8
+ export type CurrencySymbolProps = Omit<UseIntlNumberFormatOptions, 'numberStyle'> & {
9
+ sx?: SxProps<Theme>
10
+ }
11
+
12
+ /** @public */
13
+ export const CurrencySymbol = forwardRef<HTMLSpanElement, CurrencySymbolProps>((props, ref) => {
14
+ const { sx, ...options } = props
15
+ const formatter = useIntlNumberFormat({ ...options, numberStyle: 'currency' })
16
+
17
+ return (
18
+ <Box component='span' suppressHydrationWarning ref={ref} sx={sx}>
19
+ {formatter.formatToParts(1).find((part) => part.type === 'currency')?.value}
20
+ </Box>
21
+ )
22
+ })
@@ -0,0 +1 @@
1
+ export * from './CurrencySymbol'
@@ -1,16 +1,24 @@
1
+ import { Box, type SxProps, type Theme } from '@mui/material'
1
2
  import { useMemo } from 'react'
2
3
  import type { DateValue } from './toDate'
3
4
  import { toDate } from './toDate'
4
5
  import type { UseIntlDateTimeFormatOptions } from './useIntlDateTimeFormat'
5
6
  import { useIntlDateTimeFormat } from './useIntlDateTimeFormat'
6
7
 
7
- export type DateTimeFormatProps = UseIntlDateTimeFormatOptions & { date: DateValue }
8
+ export type DateTimeFormatProps = UseIntlDateTimeFormatOptions & {
9
+ date: DateValue
10
+ sx?: SxProps<Theme>
11
+ }
8
12
 
9
13
  /** @public */
10
14
  export function DateTimeFormat(props: DateTimeFormatProps) {
11
- const { date } = props
12
- const formatter = useIntlDateTimeFormat({ dateStyle: 'medium', timeStyle: 'short', ...props })
15
+ const { date, sx, ...options } = props
16
+ const formatter = useIntlDateTimeFormat({ dateStyle: 'medium', timeStyle: 'short', ...options })
13
17
 
14
18
  const dateValue = useMemo(() => toDate(date), [date])
15
- return <span suppressHydrationWarning>{dateValue ? formatter.format(dateValue) : null}</span>
19
+ return (
20
+ <Box component='span' suppressHydrationWarning sx={sx}>
21
+ {dateValue ? formatter.format(dateValue) : null}
22
+ </Box>
23
+ )
16
24
  }
@@ -1,14 +1,20 @@
1
+ import { Box, type SxProps, type Theme } from '@mui/material'
1
2
  import type { UseIntlDisplayNamesOptions } from './useIntlDisplayNames'
2
3
  import { useIntlDisplayNames } from './useIntlDisplayNames'
3
4
 
4
5
  export type DisplayNamesProps = UseIntlDisplayNamesOptions & {
5
6
  code: string
7
+ sx?: SxProps<Theme>
6
8
  }
7
9
 
8
10
  /** @public */
9
11
  export function DisplayNames(props: DisplayNamesProps) {
10
- const { code, ...options } = props
12
+ const { code, sx, ...options } = props
11
13
  const formatter = useIntlDisplayNames(options)
12
14
 
13
- return <span suppressHydrationWarning>{formatter.of(code)}</span>
15
+ return (
16
+ <Box component='span' suppressHydrationWarning sx={sx}>
17
+ {formatter.of(code)}
18
+ </Box>
19
+ )
14
20
  }
@@ -1,4 +1,4 @@
1
- import { Box } from '@mui/material'
1
+ import { Box, type SxProps, type Theme } from '@mui/material'
2
2
  import { forwardRef } from 'react'
3
3
  import type { UseIntlNumberFormatOptions } from './useIntlNumberFormat'
4
4
  import { useIntlNumberFormat } from './useIntlNumberFormat'
@@ -7,15 +7,16 @@ export type NumberFormatValue = number | bigint | Intl.StringNumericLiteral
7
7
 
8
8
  export type NumberFormatProps = UseIntlNumberFormatOptions & {
9
9
  value: NumberFormatValue
10
+ sx?: SxProps<Theme>
10
11
  }
11
12
 
12
13
  /** @public */
13
14
  export const NumberFormat = forwardRef<HTMLSpanElement, NumberFormatProps>((props, ref) => {
14
- const { value, ...options } = props
15
+ const { value, sx, ...options } = props
15
16
  const formatter = useIntlNumberFormat(options)
16
17
 
17
18
  return (
18
- <Box component='span' suppressHydrationWarning ref={ref}>
19
+ <Box component='span' suppressHydrationWarning ref={ref} sx={sx}>
19
20
  {formatter.format(value)}
20
21
  </Box>
21
22
  )
@@ -1,25 +1,42 @@
1
+ import { Box } from '@mui/material'
2
+ import type { BoxProps } from '@mui/material'
1
3
  import { forwardRef } from 'react'
2
4
  import { relativeTimeFormatUnitAuto } from './relativeTimeFormatAutoUnit'
3
5
  import type { UseIntlRelativeTimeFormatOptions } from './useIntlRelativeTimeFormat'
4
6
  import { useIntlRelativeTimeFormat } from './useIntlRelativeTimeFormat'
5
7
 
6
8
  export type RelativeTimeFormatProps = {
7
- children: number
9
+ /** Value to format. */
10
+ value: number
11
+ /**
12
+ * Unit to display. If no unit is given the unit is automatically determined and the value given
13
+ * is measured in seconds.
14
+ */
8
15
  unit?: Intl.RelativeTimeFormatUnit
9
- } & UseIntlRelativeTimeFormatOptions
16
+ } & UseIntlRelativeTimeFormatOptions &
17
+ Omit<BoxProps<'span'>, 'children'>
10
18
 
11
- /** Alternative: {@link file://./RelativeToTimeFormat.tsx} */
19
+ /**
20
+ * Function to format a relative time. Implementation of
21
+ * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/RelativeTimeFormat}
22
+ *
23
+ * When no unit is given it tries to automatically determine the unit and expects the value to be in
24
+ * seconds.
25
+ *
26
+ * @public
27
+ * @see {@link file://./RelativeToTimeFormat.tsx}
28
+ */
12
29
  export const RelativeTimeFormat = forwardRef<HTMLSpanElement, RelativeTimeFormatProps>(
13
30
  (props, ref) => {
14
- const { children, unit, locale, localeMatcher, numeric, styleFormat, ...rest } = props
31
+ const { value, unit, locale, localeMatcher, numeric, styleFormat, ...rest } = props
15
32
  const formatter = useIntlRelativeTimeFormat({ locale, localeMatcher, numeric, styleFormat })
16
33
 
17
- const [value, autoUnit] = relativeTimeFormatUnitAuto({ value: children, unit })
34
+ const result = relativeTimeFormatUnitAuto({ value, unit })
18
35
 
19
36
  return (
20
- <span suppressHydrationWarning ref={ref} {...rest}>
21
- {children ? formatter.format(value, autoUnit) : null}
22
- </span>
37
+ <Box component='span' suppressHydrationWarning ref={ref} {...rest}>
38
+ {result.value ? formatter.format(result.value, result.unit) : null}
39
+ </Box>
23
40
  )
24
41
  },
25
42
  )
@@ -4,9 +4,9 @@ import { toDate } from '../DateTimeFormat/toDate'
4
4
  import type { RelativeTimeFormatProps } from './RelativeTimeFormat'
5
5
  import { RelativeTimeFormat } from './RelativeTimeFormat'
6
6
 
7
- type RelativeToTimeFormatProps = Omit<RelativeTimeFormatProps, 'children'> & {
7
+ type RelativeToTimeFormatProps = Omit<RelativeTimeFormatProps, 'value' | 'children'> & {
8
8
  /** Date to format a relative value for. */
9
- children: DateValue
9
+ date: DateValue
10
10
  /**
11
11
  * If provided, the component will format a relative value to this date. Else, it will format a
12
12
  * relative value to the current date.
@@ -14,22 +14,23 @@ type RelativeToTimeFormatProps = Omit<RelativeTimeFormatProps, 'children'> & {
14
14
  to?: DateValue
15
15
  }
16
16
 
17
+ /**
18
+ * Relative to the the current date.
19
+ *
20
+ * @public
21
+ */
17
22
  export const RelativeToTimeFormat = forwardRef<HTMLSpanElement, RelativeToTimeFormatProps>(
18
23
  (props, ref) => {
19
- const { children, to, ...rest } = props
24
+ const { date, to, ...rest } = props
20
25
 
21
26
  const relativeTo = useMemo(() => {
22
- const date = toDate(children)
23
- if (!date) return 0
27
+ const dateValue = toDate(date)
28
+ if (!dateValue) return 0
24
29
  const toDateValue = (to && toDate(to)) || new Date()
25
30
 
26
- return Math.round((date.getTime() - toDateValue.getTime()) / 1000)
27
- }, [children, to])
31
+ return Math.round((dateValue.getTime() - toDateValue.getTime()) / 1000)
32
+ }, [date, to])
28
33
 
29
- return (
30
- <RelativeTimeFormat {...rest} ref={ref}>
31
- {relativeTo}
32
- </RelativeTimeFormat>
33
- )
34
+ return <RelativeTimeFormat {...rest} ref={ref} value={relativeTo} />
34
35
  },
35
36
  )
@@ -1,23 +1,45 @@
1
- type UseRelativeTimeFormatUnitAutoProps = {
1
+ export type UseRelativeTimeFormatUnitAutoProps = {
2
2
  value: number
3
3
  unit?: Intl.RelativeTimeFormatUnit
4
4
  }
5
5
 
6
+ export type RelativeTimeFormatUnitAutoResult = {
7
+ value: number
8
+ unit: Intl.RelativeTimeFormatUnit
9
+ remainder: number
10
+ }
11
+
6
12
  export function relativeTimeFormatUnitAuto(
7
13
  props: UseRelativeTimeFormatUnitAutoProps,
8
- ): [number, Intl.RelativeTimeFormatUnit] {
14
+ ): RelativeTimeFormatUnitAutoResult {
9
15
  const { value, unit } = props
16
+ const absValue = Math.abs(value)
10
17
 
11
- if (unit) return [value, unit]
18
+ const timeUnits = [
19
+ { threshold: 60 * 60 * 24 * 365, unit: 'year' },
20
+ { threshold: 60 * 60 * 24 * 30, unit: 'month' },
21
+ { threshold: 60 * 60 * 24 * 7, unit: 'week' },
22
+ { threshold: 60 * 60 * 24, unit: 'day' },
23
+ { threshold: 60 * 60, unit: 'hour' },
24
+ { threshold: 60, unit: 'minute' },
25
+ { threshold: 0, unit: 'second' },
26
+ ] as const
12
27
 
13
- // Calculate the absolute value once
14
- const absValue = Math.abs(value)
28
+ let result: RelativeTimeFormatUnitAutoResult
29
+
30
+ if (unit) {
31
+ result = { value, unit, remainder: 0 }
32
+ } else {
33
+ const timeUnit =
34
+ timeUnits.find((tu) => absValue >= tu.threshold) ?? timeUnits[timeUnits.length - 1]
35
+ const divisor = timeUnit.unit === 'second' ? 1 : timeUnit.threshold
36
+
37
+ result = {
38
+ value: Math.floor(value / divisor),
39
+ unit: timeUnit.unit,
40
+ remainder: value % divisor,
41
+ }
42
+ }
15
43
 
16
- if (absValue >= 60 * 60 * 24 * 365) return [Math.round(value / (60 * 60 * 24 * 365)), 'year']
17
- if (absValue >= 60 * 60 * 24 * 30) return [Math.round(value / (60 * 60 * 24 * 30)), 'month']
18
- if (absValue >= 60 * 60 * 24 * 7) return [Math.round(value / (60 * 60 * 24 * 7)), 'week']
19
- if (absValue >= 60 * 60 * 24) return [Math.round(value / (60 * 60 * 24)), 'day']
20
- if (absValue >= 60 * 60) return [Math.round(value / (60 * 60)), 'hour']
21
- if (absValue >= 60) return [Math.round(value / 60), 'minute']
22
- return [Math.round(value), 'second']
44
+ return result
23
45
  }
package/Intl/index.ts CHANGED
@@ -9,3 +9,4 @@ export * from './NumberFormat' // Intl.NumberFormat
9
9
  // export * from './PluralRules' // Intl.PluralRules
10
10
  export * from './RelativeTimeFormat' // Intl.RelativeTimeFormat
11
11
  // export * from './Segmenter' // Intl.Segmenter
12
+ export * from './CurrencySymbol'
@@ -48,6 +48,7 @@ export const NextLink = forwardRef<HTMLAnchorElement, LinkProps>((props, ref) =>
48
48
  const url = new URL(href)
49
49
  locale = router.locales?.find((l) => url.pathname.startsWith(`/${l}/`))
50
50
  href = locale ? url.pathname.replace(`/${locale}/`, '/') : url.pathname
51
+ href += url.search
51
52
  }
52
53
 
53
54
  const isExternal = isFullUrl && !href.startsWith(canonicalBaseUrl)
package/hooks/memoDeep.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  // eslint-disable-next-line import/no-extraneous-dependencies
2
+ import diff from '@graphcommerce/react-hook-form/src/diff'
3
+ // eslint-disable-next-line import/no-extraneous-dependencies
2
4
  import { equal } from '@wry/equality'
3
5
  import type { FunctionComponent, NamedExoticComponent } from 'react'
4
6
  import { memo } from 'react'
@@ -23,11 +25,10 @@ export function memoDeep<P extends object>(
23
25
  const result = equal(prevProps, nextProps)
24
26
  const ms = performance.now() - start
25
27
 
26
- if (ms < 0.2) return result
28
+ if (!result && ms < 0.2) return result
27
29
 
28
- console.warn('memoDeep took more than 0.2ms', {
30
+ console.warn(`memoDeep took ${ms.toFixed(2)}ms`, {
29
31
  result,
30
- ms,
31
32
  Component,
32
33
  prevProps,
33
34
  nextProps,
package/icons.ts CHANGED
@@ -53,3 +53,262 @@ export { default as iconPhone } from './icons/smartphone.svg'
53
53
  export { default as iconStar } from './icons/star.svg'
54
54
  export { default as iconSun } from './icons/sun.svg'
55
55
  export { default as iconInfo } from './icons/info.svg'
56
+ export { default as iconAccessibilityHuman } from './icons/accessibility-human.svg'
57
+ export { default as iconAccessibility } from './icons/accessibility.svg'
58
+ export { default as iconActivity } from './icons/activity.svg'
59
+ export { default as iconAddToList } from './icons/add-to-list.svg'
60
+ export { default as iconAdd } from './icons/add.svg'
61
+ export { default as iconAlarm } from './icons/alarm.svg'
62
+ export { default as iconAlignCenter } from './icons/align-center.svg'
63
+ export { default as iconAlignLeft } from './icons/align-left.svg'
64
+ export { default as iconAlignRight } from './icons/align-right.svg'
65
+ export { default as iconAnchor } from './icons/anchor.svg'
66
+ export { default as iconAperture } from './icons/aperture.svg'
67
+ export { default as iconAppsAlt } from './icons/apps-alt.svg'
68
+ export { default as iconApps } from './icons/apps.svg'
69
+ export { default as iconArrowDownCircle } from './icons/arrow-down-circle.svg'
70
+ export { default as iconBattery } from './icons/battery.svg'
71
+ export { default as iconBatteryAlt } from './icons/battery-alt.svg'
72
+ export { default as iconBatteryCharging } from './icons/battery-charging.svg'
73
+ export { default as iconBatteryFull } from './icons/battery-full.svg'
74
+ export { default as iconBatteryLow } from './icons/battery-low.svg'
75
+ export { default as iconBatteryMedium } from './icons/battery-medium.svg'
76
+ export { default as iconBell } from './icons/bell.svg'
77
+ export { default as iconBike } from './icons/bike.svg'
78
+ export { default as iconBluetooth } from './icons/bluetooth.svg'
79
+ export { default as iconBolt } from './icons/bolt.svg'
80
+ export { default as iconBookOpened } from './icons/book-opened.svg'
81
+ export { default as iconBook } from './icons/book.svg'
82
+ export { default as iconBookmark } from './icons/bookmark.svg'
83
+ export { default as iconBrightness } from './icons/brightness.svg'
84
+ export { default as iconBug } from './icons/bug.svg'
85
+ export { default as iconCalendarAdd } from './icons/calendar-add.svg'
86
+ export { default as iconCalendarDecline } from './icons/calendar-decline.svg'
87
+ export { default as iconCalendarEvent } from './icons/calendar-event.svg'
88
+ export { default as iconCameraRear } from './icons/camera-rear.svg'
89
+ export { default as iconCamera } from './icons/camera.svg'
90
+ export { default as iconCards } from './icons/cards.svg'
91
+ export { default as iconCelluar } from './icons/celluar.svg'
92
+ export { default as iconChart } from './icons/chart.svg'
93
+ export { default as iconChatAdd } from './icons/chat-add.svg'
94
+ export { default as iconChatRemove } from './icons/chat-remove.svg'
95
+ export { default as iconChatWarning } from './icons/chat-warning.svg'
96
+ export { default as iconCheckboxIntermediate } from './icons/checkbox-intermediate.svg'
97
+ export { default as iconCheckbox } from './icons/checkbox.svg'
98
+ export { default as iconChevronsDown } from './icons/chevrons-down.svg'
99
+ export { default as iconChevronsLeft } from './icons/chevrons-left.svg'
100
+ export { default as iconChevronsRight } from './icons/chevrons-right.svg'
101
+ export { default as iconChevronsUp } from './icons/chevrons-up.svg'
102
+ export { default as iconClip } from './icons/clip.svg'
103
+ export { default as iconClipboard } from './icons/clipboard.svg'
104
+ export { default as iconCloudCrossed } from './icons/cloud-crossed.svg'
105
+ export { default as iconCloudUpload } from './icons/cloud-upload.svg'
106
+ export { default as iconCloud } from './icons/cloud.svg'
107
+ export { default as iconCodeAlt } from './icons/code-alt.svg'
108
+ export { default as iconCode } from './icons/code.svg'
109
+ export { default as iconCoffee } from './icons/coffee.svg'
110
+ export { default as iconColours } from './icons/colours.svg'
111
+ export { default as iconComponent } from './icons/component.svg'
112
+ export { default as iconContactBook } from './icons/contact-book.svg'
113
+ export { default as iconControlCentre } from './icons/control-centre.svg'
114
+ export { default as iconControlsAlt } from './icons/controls-alt.svg'
115
+ export { default as iconControlsVerticalAlt } from './icons/controls-vertical-alt.svg'
116
+ export { default as iconControls } from './icons/controls.svg'
117
+ export { default as iconCopy } from './icons/copy.svg'
118
+ export { default as iconCrop } from './icons/crop.svg'
119
+ export { default as iconCrossing } from './icons/crossing.svg'
120
+ export { default as iconCup } from './icons/cup.svg'
121
+ export { default as iconCursor } from './icons/cursor.svg'
122
+ export { default as iconCut } from './icons/cut.svg'
123
+ export { default as iconDanger } from './icons/danger.svg'
124
+ export { default as iconDashboard } from './icons/dashboard.svg'
125
+ export { default as iconDelete } from './icons/delete.svg'
126
+ export { default as iconDialpad } from './icons/dialpad.svg'
127
+ export { default as iconDiamond } from './icons/diamond.svg'
128
+ export { default as iconDirectionLeft } from './icons/direction-left.svg'
129
+ export { default as iconDirectionRight } from './icons/direction-right.svg'
130
+ export { default as iconDirectionsLeft } from './icons/directions-left.svg'
131
+ export { default as iconDirectionsRight } from './icons/directions-right.svg'
132
+ export { default as iconDisc } from './icons/disc.svg'
133
+ export { default as iconDolar } from './icons/dolar.svg'
134
+ export { default as iconDownload } from './icons/download.svg'
135
+ export { default as iconDrop } from './icons/drop.svg'
136
+ export { default as iconEar } from './icons/ear.svg'
137
+ export { default as iconEdit } from './icons/edit.svg'
138
+ export { default as iconEllipsisVertical } from './icons/ellypsis-vertical.svg'
139
+ export { default as iconEntrance } from './icons/entrance.svg'
140
+ export { default as iconError } from './icons/error.svg'
141
+ export { default as iconExtension } from './icons/extension.svg'
142
+ export { default as iconFacebook } from './icons/facebook.svg'
143
+ export { default as iconFeather } from './icons/feather.svg'
144
+ export { default as iconFeed } from './icons/feed.svg'
145
+ export { default as iconFile } from './icons/file.svg'
146
+ export { default as iconFilm } from './icons/film.svg'
147
+ export { default as iconFilter } from './icons/filter.svg'
148
+ export { default as iconFit } from './icons/fit.svg'
149
+ export { default as iconFlag } from './icons/flag.svg'
150
+ export { default as iconFlower } from './icons/flower.svg'
151
+ export { default as iconFolderAdd } from './icons/folder-add.svg'
152
+ export { default as iconFolderRemove } from './icons/folder-remove.svg'
153
+ export { default as iconFolderWarning } from './icons/folder-warning.svg'
154
+ export { default as iconFolder } from './icons/folder.svg'
155
+ export { default as iconForward } from './icons/forward.svg'
156
+ export { default as iconGlasses } from './icons/glasses.svg'
157
+ export { default as iconGridAlt } from './icons/grid-alt.svg'
158
+ export { default as iconGridSmall } from './icons/grid-small.svg'
159
+ export { default as iconGrid } from './icons/grid.svg'
160
+ export { default as iconHash } from './icons/hash.svg'
161
+ export { default as iconHdr } from './icons/hdr.svg'
162
+ export { default as iconHeadphones } from './icons/headphones.svg'
163
+ export { default as iconHearingDisability } from './icons/hearing-disability.svg'
164
+ export { default as iconHelp } from './icons/help.svg'
165
+ export { default as iconHistory } from './icons/history.svg'
166
+ export { default as iconHomeAlt2 } from './icons/home-alt2.svg'
167
+ export { default as iconHorn } from './icons/horn.svg'
168
+ export { default as iconHourglass } from './icons/hourglass.svg'
169
+ export { default as iconImage } from './icons/image.svg'
170
+ export { default as iconInboxAlt } from './icons/inbox-alt.svg'
171
+ export { default as iconInbox } from './icons/inbox.svg'
172
+ export { default as iconInstagram } from './icons/instagram.svg'
173
+ export { default as iconIphone } from './icons/iphone.svg'
174
+ export { default as iconJustify } from './icons/justify.svg'
175
+ export { default as iconKey } from './icons/key.svg'
176
+ export { default as iconLaptop } from './icons/laptop.svg'
177
+ export { default as iconLayers } from './icons/layers.svg'
178
+ export { default as iconLayoutLeft } from './icons/layout-left.svg'
179
+ export { default as iconLayoutRight } from './icons/layout-right.svg'
180
+ export { default as iconLightbulb } from './icons/lightbulb.svg'
181
+ export { default as iconLineChart } from './icons/line-chart.svg'
182
+ export { default as iconLink } from './icons/link.svg'
183
+ export { default as iconLinkedin } from './icons/linkedin.svg'
184
+ export { default as iconListAlt } from './icons/list-alt.svg'
185
+ export { default as iconListView } from './icons/list-view.svg'
186
+ export { default as iconList } from './icons/list.svg'
187
+ export { default as iconLockAltOpen } from './icons/lock-alt-open.svg'
188
+ export { default as iconLockAlt } from './icons/lock-alt.svg'
189
+ export { default as iconLockOpen } from './icons/lock-open.svg'
190
+ export { default as iconMap } from './icons/map.svg'
191
+ export { default as iconMarker } from './icons/marker.svg'
192
+ export { default as iconMask } from './icons/mask.svg'
193
+ export { default as iconMicrophone } from './icons/microphone.svg'
194
+ export { default as iconMouse } from './icons/mouse.svg'
195
+ export { default as iconMusic } from './icons/music.svg'
196
+ export { default as iconMute } from './icons/mute.svg'
197
+ export { default as iconNeutralFace } from './icons/neutral-face.svg'
198
+ export { default as iconNew } from './icons/new.svg'
199
+ export { default as iconNextAlt } from './icons/next-alt.svg'
200
+ export { default as iconNext } from './icons/next.svg'
201
+ export { default as iconNightMode } from './icons/night-mode.svg'
202
+ export { default as iconNoEntry } from './icons/no-entry.svg'
203
+ export { default as iconNotAllowed } from './icons/not-allowed.svg'
204
+ export { default as iconNotebook } from './icons/notebook.svg'
205
+ export { default as iconOctagon } from './icons/octagon.svg'
206
+ export { default as iconOkCircle } from './icons/ok-circle.svg'
207
+ export { default as iconOrigin } from './icons/origin.svg'
208
+ export { default as iconPan } from './icons/pan.svg'
209
+ export { default as iconPaperclip } from './icons/paperclip.svg'
210
+ export { default as iconPauseCircle } from './icons/pause-circle.svg'
211
+ export { default as iconPause } from './icons/pause.svg'
212
+ export { default as iconPen } from './icons/pen.svg'
213
+ export { default as iconPeople } from './icons/people.svg'
214
+ export { default as iconPersonAdd } from './icons/person-add.svg'
215
+ export { default as iconPieChart } from './icons/pie-chart.svg'
216
+ export { default as iconPizza } from './icons/pizza.svg'
217
+ export { default as iconPlaceholder } from './icons/placeholder.svg'
218
+ export { default as iconPlane } from './icons/plane.svg'
219
+ export { default as iconPoll } from './icons/poll.svg'
220
+ export { default as iconPresentation } from './icons/presentation.svg'
221
+ export { default as iconPreviousAlt } from './icons/previous-alt.svg'
222
+ export { default as iconPrevious } from './icons/previous.svg'
223
+ export { default as iconPrint } from './icons/print.svg'
224
+ export { default as iconQr } from './icons/qr.svg'
225
+ export { default as iconRadioButtonSelected } from './icons/radio-button-selected.svg'
226
+ export { default as iconRadioButton } from './icons/radio-button.svg'
227
+ export { default as iconRadio } from './icons/radio.svg'
228
+ export { default as iconRain } from './icons/rain.svg'
229
+ export { default as iconRectangle } from './icons/rectangle.svg'
230
+ export { default as iconRedo } from './icons/redo.svg'
231
+ export { default as iconRemove } from './icons/remove.svg'
232
+ export { default as iconRepeat } from './icons/repeat.svg'
233
+ export { default as iconRestaurant } from './icons/restaurant.svg'
234
+ export { default as iconReturn } from './icons/return.svg'
235
+ export { default as iconRetweet } from './icons/retweet.svg'
236
+ export { default as iconRocket } from './icons/rocket.svg'
237
+ export { default as iconRotate } from './icons/rotate.svg'
238
+ export { default as iconRss } from './icons/rss.svg'
239
+ export { default as iconSave } from './icons/save.svg'
240
+ export { default as iconSend } from './icons/send.svg'
241
+ export { default as iconSettings } from './icons/settings.svg'
242
+ export { default as iconShareAndroid } from './icons/share-android.svg'
243
+ export { default as iconShareIos } from './icons/share-ios.svg'
244
+ export { default as iconShare } from './icons/share.svg'
245
+ export { default as iconShield } from './icons/shield.svg'
246
+ export { default as iconShift } from './icons/shift.svg'
247
+ export { default as iconShuffle } from './icons/shuffle.svg'
248
+ export { default as iconSignLanguage } from './icons/sign-language.svg'
249
+ export { default as iconSignalAlt } from './icons/signal-alt.svg'
250
+ export { default as iconSignal } from './icons/signal.svg'
251
+ export { default as iconSkull } from './icons/skull.svg'
252
+ export { default as iconSnow } from './icons/snow.svg'
253
+ export { default as iconSortDown } from './icons/sort-down.svg'
254
+ export { default as iconSortUp } from './icons/sort-up.svg'
255
+ export { default as iconSorting } from './icons/sorting.svg'
256
+ export { default as iconSounds } from './icons/sounds.svg'
257
+ export { default as iconSpam } from './icons/spam.svg'
258
+ export { default as iconStack } from './icons/stack.svg'
259
+ export { default as iconStatsAlt } from './icons/stats-alt.svg'
260
+ export { default as iconStats } from './icons/stats.svg'
261
+ export { default as iconSticker } from './icons/sticker.svg'
262
+ export { default as iconStop } from './icons/stop.svg'
263
+ export { default as iconStopwatch } from './icons/stopwatch.svg'
264
+ export { default as iconSuitcaseAlt } from './icons/suitcase-alt.svg'
265
+ export { default as iconSuitcase } from './icons/suitcase.svg'
266
+ export { default as iconSunCloud } from './icons/sun-cloud.svg'
267
+ export { default as iconSunset } from './icons/sunset.svg'
268
+ export { default as iconSupportAlt } from './icons/support-alt.svg'
269
+ export { default as iconSupport } from './icons/support.svg'
270
+ export { default as iconSwapHorizontal } from './icons/swap-horizontal.svg'
271
+ export { default as iconSwapVertical } from './icons/swap-vertical.svg'
272
+ export { default as iconSwitchOff } from './icons/switch-off.svg'
273
+ export { default as iconSwitchOn } from './icons/switch-on.svg'
274
+ export { default as iconTableHorizontal } from './icons/table-horizontal.svg'
275
+ export { default as iconTableVertical } from './icons/table-vertical.svg'
276
+ export { default as iconTagAlt } from './icons/tag-alt.svg'
277
+ export { default as iconTag } from './icons/tag.svg'
278
+ export { default as iconText } from './icons/text.svg'
279
+ export { default as iconThermometer } from './icons/thermometer.svg'
280
+ export { default as iconThumbDown } from './icons/thumb-down.svg'
281
+ export { default as iconThumbUp } from './icons/thumb-up.svg'
282
+ export { default as iconThunder } from './icons/thunder.svg'
283
+ export { default as iconTime } from './icons/time.svg'
284
+ export { default as iconTimer } from './icons/timer.svg'
285
+ export { default as iconTool } from './icons/tool.svg'
286
+ export { default as iconTrain } from './icons/train.svg'
287
+ export { default as iconTransport } from './icons/transport.svg'
288
+ export { default as iconTrendingDown } from './icons/trending-down.svg'
289
+ export { default as iconTrendingUp } from './icons/trending-up.svg'
290
+ export { default as iconTurnLeft } from './icons/turn-left.svg'
291
+ export { default as iconTurnRight } from './icons/turn-right.svg'
292
+ export { default as iconTv } from './icons/tv.svg'
293
+ export { default as iconTwitter } from './icons/twitter.svg'
294
+ export { default as iconTypography } from './icons/typography.svg'
295
+ export { default as iconUmbrella } from './icons/umbrella.svg'
296
+ export { default as iconUndo } from './icons/undo.svg'
297
+ export { default as iconUpload } from './icons/upload.svg'
298
+ export { default as iconUser } from './icons/user.svg'
299
+ export { default as iconVerified } from './icons/verified.svg'
300
+ export { default as iconVertical } from './icons/vertical.svg'
301
+ export { default as iconVideo } from './icons/video.svg'
302
+ export { default as iconVoicemail } from './icons/voicemail.svg'
303
+ export { default as iconVolumeLoud } from './icons/volume-loud.svg'
304
+ export { default as iconVolumeOff } from './icons/volume-off.svg'
305
+ export { default as iconVolumeQuiet } from './icons/volume-quiet.svg'
306
+ export { default as iconWalking } from './icons/walking.svg'
307
+ export { default as iconWallpaper } from './icons/wallpaper.svg'
308
+ export { default as iconWatch } from './icons/watch.svg'
309
+ export { default as iconWheelchair } from './icons/wheelchair.svg'
310
+ export { default as iconWifi } from './icons/wifi.svg'
311
+ export { default as iconWindow } from './icons/window.svg'
312
+ export { default as iconWine } from './icons/wine.svg'
313
+ export { default as iconZoomIn } from './icons/zoom-in.svg'
314
+ export { default as iconZoomOut } from './icons/zoom-out.svg'
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@graphcommerce/next-ui",
3
3
  "homepage": "https://www.graphcommerce.org/",
4
4
  "repository": "github:graphcommerce-org/graphcommerce",
5
- "version": "9.0.4-canary.8",
5
+ "version": "9.1.0-canary.15",
6
6
  "sideEffects": false,
7
7
  "prettier": "@graphcommerce/prettier-config-pwa",
8
8
  "eslintConfig": {
@@ -24,13 +24,13 @@
24
24
  "@emotion/react": "^11",
25
25
  "@emotion/server": "^11",
26
26
  "@emotion/styled": "^11",
27
- "@graphcommerce/eslint-config-pwa": "^9.0.4-canary.8",
28
- "@graphcommerce/framer-next-pages": "^9.0.4-canary.8",
29
- "@graphcommerce/framer-scroller": "^9.0.4-canary.8",
30
- "@graphcommerce/framer-utils": "^9.0.4-canary.8",
31
- "@graphcommerce/image": "^9.0.4-canary.8",
32
- "@graphcommerce/prettier-config-pwa": "^9.0.4-canary.8",
33
- "@graphcommerce/typescript-config-pwa": "^9.0.4-canary.8",
27
+ "@graphcommerce/eslint-config-pwa": "^9.1.0-canary.15",
28
+ "@graphcommerce/framer-next-pages": "^9.1.0-canary.15",
29
+ "@graphcommerce/framer-scroller": "^9.1.0-canary.15",
30
+ "@graphcommerce/framer-utils": "^9.1.0-canary.15",
31
+ "@graphcommerce/image": "^9.1.0-canary.15",
32
+ "@graphcommerce/prettier-config-pwa": "^9.1.0-canary.15",
33
+ "@graphcommerce/typescript-config-pwa": "^9.1.0-canary.15",
34
34
  "@lingui/core": "^4.2.1",
35
35
  "@lingui/macro": "^4.2.1",
36
36
  "@lingui/react": "^4.2.1",