@itwin/itwinui-react 3.14.2 → 3.15.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 (101) hide show
  1. package/CHANGELOG.md +68 -2
  2. package/DEV-cjs/core/Carousel/CarouselDotsList.js +11 -4
  3. package/DEV-cjs/core/Carousel/CarouselSlider.js +3 -3
  4. package/DEV-cjs/core/ColorPicker/ColorBuilder.js +72 -24
  5. package/DEV-cjs/core/ColorPicker/ColorInputPanel.js +35 -7
  6. package/DEV-cjs/core/ColorPicker/ColorPalette.js +21 -3
  7. package/DEV-cjs/core/ComboBox/ComboBox.js +2 -1
  8. package/DEV-cjs/core/ComboBox/ComboBoxMenu.js +2 -2
  9. package/DEV-cjs/core/DropdownMenu/DropdownMenu.js +20 -19
  10. package/DEV-cjs/core/Overlay/Overlay.js +0 -18
  11. package/DEV-cjs/core/Popover/Popover.js +17 -10
  12. package/DEV-cjs/core/Select/Select.js +4 -2
  13. package/DEV-cjs/core/Table/Table.js +50 -25
  14. package/DEV-cjs/core/Table/TableExpandableContentMemoized.js +47 -0
  15. package/DEV-cjs/core/Table/TableRowMemoized.js +0 -18
  16. package/DEV-cjs/core/Table/hooks/useColumnDragAndDrop.js +12 -14
  17. package/DEV-cjs/core/ThemeProvider/ThemeProvider.js +18 -0
  18. package/DEV-cjs/core/Toast/Toast.js +6 -7
  19. package/DEV-cjs/styles.js +1 -1
  20. package/DEV-cjs/utils/components/ShadowRoot.js +22 -8
  21. package/DEV-cjs/utils/hooks/useWarningLogger.js +5 -3
  22. package/DEV-esm/core/Carousel/CarouselDotsList.js +10 -5
  23. package/DEV-esm/core/Carousel/CarouselSlider.js +2 -3
  24. package/DEV-esm/core/ColorPicker/ColorBuilder.js +56 -22
  25. package/DEV-esm/core/ColorPicker/ColorInputPanel.js +37 -8
  26. package/DEV-esm/core/ColorPicker/ColorPalette.js +18 -3
  27. package/DEV-esm/core/ComboBox/ComboBox.js +2 -1
  28. package/DEV-esm/core/ComboBox/ComboBoxMenu.js +2 -2
  29. package/DEV-esm/core/DropdownMenu/DropdownMenu.js +20 -19
  30. package/DEV-esm/core/Overlay/Overlay.js +1 -19
  31. package/DEV-esm/core/Popover/Popover.js +18 -10
  32. package/DEV-esm/core/Select/Select.js +4 -2
  33. package/DEV-esm/core/Table/Table.js +50 -25
  34. package/DEV-esm/core/Table/TableExpandableContentMemoized.js +33 -0
  35. package/DEV-esm/core/Table/TableRowMemoized.js +1 -21
  36. package/DEV-esm/core/Table/hooks/useColumnDragAndDrop.js +12 -6
  37. package/DEV-esm/core/ThemeProvider/ThemeProvider.js +18 -0
  38. package/DEV-esm/core/Toast/Toast.js +5 -5
  39. package/DEV-esm/styles.js +1 -1
  40. package/DEV-esm/utils/components/ShadowRoot.js +22 -8
  41. package/DEV-esm/utils/hooks/useWarningLogger.js +4 -3
  42. package/cjs/core/Buttons/SplitButton.d.ts +5 -0
  43. package/cjs/core/Carousel/CarouselDotsList.js +11 -4
  44. package/cjs/core/Carousel/CarouselSlider.js +3 -3
  45. package/cjs/core/ColorPicker/ColorBuilder.d.ts +22 -1
  46. package/cjs/core/ColorPicker/ColorBuilder.js +72 -24
  47. package/cjs/core/ColorPicker/ColorInputPanel.d.ts +18 -0
  48. package/cjs/core/ColorPicker/ColorInputPanel.js +35 -7
  49. package/cjs/core/ColorPicker/ColorPalette.d.ts +8 -0
  50. package/cjs/core/ColorPicker/ColorPalette.js +21 -3
  51. package/cjs/core/ComboBox/ComboBox.d.ts +3 -2
  52. package/cjs/core/ComboBox/ComboBox.js +2 -1
  53. package/cjs/core/ComboBox/ComboBoxMenu.js +2 -2
  54. package/cjs/core/DropdownMenu/DropdownMenu.d.ts +11 -0
  55. package/cjs/core/DropdownMenu/DropdownMenu.js +20 -19
  56. package/cjs/core/Overlay/Overlay.js +0 -18
  57. package/cjs/core/Popover/Popover.d.ts +4 -1
  58. package/cjs/core/Popover/Popover.js +17 -10
  59. package/cjs/core/Select/Select.d.ts +14 -2
  60. package/cjs/core/Select/Select.js +4 -2
  61. package/cjs/core/Table/Table.js +50 -25
  62. package/cjs/core/Table/TableExpandableContentMemoized.d.ts +10 -0
  63. package/cjs/core/Table/TableExpandableContentMemoized.js +47 -0
  64. package/cjs/core/Table/TableRowMemoized.js +0 -18
  65. package/cjs/core/Table/hooks/useColumnDragAndDrop.js +12 -14
  66. package/cjs/core/ThemeProvider/ThemeProvider.js +18 -0
  67. package/cjs/core/Toast/Toast.js +6 -7
  68. package/cjs/styles.js +1 -1
  69. package/cjs/utils/components/ShadowRoot.js +22 -8
  70. package/cjs/utils/hooks/useWarningLogger.js +1 -0
  71. package/esm/core/Buttons/SplitButton.d.ts +5 -0
  72. package/esm/core/Carousel/CarouselDotsList.js +10 -5
  73. package/esm/core/Carousel/CarouselSlider.js +2 -3
  74. package/esm/core/ColorPicker/ColorBuilder.d.ts +22 -1
  75. package/esm/core/ColorPicker/ColorBuilder.js +56 -22
  76. package/esm/core/ColorPicker/ColorInputPanel.d.ts +18 -0
  77. package/esm/core/ColorPicker/ColorInputPanel.js +37 -8
  78. package/esm/core/ColorPicker/ColorPalette.d.ts +8 -0
  79. package/esm/core/ColorPicker/ColorPalette.js +18 -3
  80. package/esm/core/ComboBox/ComboBox.d.ts +3 -2
  81. package/esm/core/ComboBox/ComboBox.js +2 -1
  82. package/esm/core/ComboBox/ComboBoxMenu.js +2 -2
  83. package/esm/core/DropdownMenu/DropdownMenu.d.ts +11 -0
  84. package/esm/core/DropdownMenu/DropdownMenu.js +20 -19
  85. package/esm/core/Overlay/Overlay.js +1 -19
  86. package/esm/core/Popover/Popover.d.ts +4 -1
  87. package/esm/core/Popover/Popover.js +18 -10
  88. package/esm/core/Select/Select.d.ts +14 -2
  89. package/esm/core/Select/Select.js +4 -2
  90. package/esm/core/Table/Table.js +50 -25
  91. package/esm/core/Table/TableExpandableContentMemoized.d.ts +10 -0
  92. package/esm/core/Table/TableExpandableContentMemoized.js +33 -0
  93. package/esm/core/Table/TableRowMemoized.js +1 -21
  94. package/esm/core/Table/hooks/useColumnDragAndDrop.js +12 -6
  95. package/esm/core/ThemeProvider/ThemeProvider.js +18 -0
  96. package/esm/core/Toast/Toast.js +5 -5
  97. package/esm/styles.js +1 -1
  98. package/esm/utils/components/ShadowRoot.js +22 -8
  99. package/esm/utils/hooks/useWarningLogger.js +1 -0
  100. package/package.json +8 -6
  101. package/styles.css +8 -8
@@ -48,6 +48,7 @@ import {
48
48
  } from './actionHandlers/index.js';
49
49
  import { SELECTION_CELL_ID } from './columns/index.js';
50
50
  import { ColumnHeader } from './ColumnHeader.js';
51
+ import { TableExpandableContentMemoized } from './TableExpandableContentMemoized.js';
51
52
  let singleRowSelectedAction = 'singleRowSelected';
52
53
  let shiftRowSelectedAction = 'shiftRowSelected';
53
54
  export const tableResizeStartAction = 'tableResizeStart';
@@ -239,6 +240,17 @@ export const Table = (props) => {
239
240
  ),
240
241
  [data, getSubRows],
241
242
  );
243
+ let [rowHasParent] = React.useState(() => new WeakSet());
244
+ let getSubRowsWithSubComponents = React.useCallback(
245
+ (originalRow) => {
246
+ if (!rowHasParent.has(originalRow)) {
247
+ rowHasParent.add(originalRow);
248
+ return [originalRow];
249
+ }
250
+ return originalRow.subRows || [];
251
+ },
252
+ [rowHasParent],
253
+ );
242
254
  let instance = useTable(
243
255
  {
244
256
  manualPagination: !paginatorRenderer,
@@ -251,7 +263,7 @@ export const Table = (props) => {
251
263
  filterTypes,
252
264
  selectSubRows,
253
265
  data,
254
- getSubRows,
266
+ getSubRows: subComponent ? getSubRowsWithSubComponents : getSubRows,
255
267
  initialState: {
256
268
  pageSize,
257
269
  ...props.initialState,
@@ -443,39 +455,54 @@ export const Table = (props) => {
443
455
  useLayoutEffect(() => {
444
456
  if (scrollToIndex)
445
457
  virtualizer.scrollToIndex(scrollToIndex, {
446
- align: 'center',
458
+ align: 'start',
447
459
  });
448
460
  }, [virtualizer, scrollToIndex]);
449
461
  let getPreparedRow = React.useCallback(
450
462
  (index, virtualItem, virtualizer) => {
451
463
  let row = page[index];
452
464
  prepareRow(row);
453
- return React.createElement(TableRowMemoized, {
454
- row: row,
455
- rowProps: rowProps,
456
- isLast: index === page.length - 1,
457
- onRowInViewport: onRowInViewportRef,
458
- onBottomReached: onBottomReachedRef,
459
- intersectionMargin: intersectionMargin,
460
- state: state,
461
- key: row.getRowProps().key,
462
- onClick: onRowClickHandler,
463
- subComponent: subComponent,
464
- isDisabled: !!isRowDisabled?.(row.original),
465
- tableHasSubRows: hasAnySubRows,
466
- tableInstance: instance,
467
- expanderCell: expanderCell,
468
- scrollContainerRef: tableRef.current,
469
- tableRowRef: enableVirtualization ? void 0 : tableRowRef(row),
470
- density: density,
471
- virtualItem: virtualItem,
472
- virtualizer: virtualizer,
473
- });
465
+ if (row.subRows.length > 0 || !subComponent)
466
+ return React.createElement(TableRowMemoized, {
467
+ row: row,
468
+ rowProps: rowProps,
469
+ isLast: index === page.length - 1,
470
+ onRowInViewport: onRowInViewportRef,
471
+ onBottomReached: onBottomReachedRef,
472
+ intersectionMargin: intersectionMargin,
473
+ state: state,
474
+ key: row.getRowProps().key,
475
+ onClick: onRowClickHandler,
476
+ subComponent: subComponent,
477
+ isDisabled: !!isRowDisabled?.(row.original),
478
+ tableHasSubRows: hasAnySubRows,
479
+ tableInstance: instance,
480
+ expanderCell: expanderCell,
481
+ scrollContainerRef: tableRef.current,
482
+ tableRowRef: enableVirtualization ? void 0 : tableRowRef(row),
483
+ density: density,
484
+ virtualItem: virtualItem,
485
+ virtualizer: virtualizer,
486
+ });
487
+ return React.createElement(
488
+ TableExpandableContentMemoized,
489
+ {
490
+ key: row.getRowProps().key,
491
+ virtualItem: virtualItem,
492
+ ref: enableVirtualization
493
+ ? virtualizer?.measureElement
494
+ : tableRowRef(row),
495
+ isDisabled: !!isRowDisabled?.(row.original),
496
+ },
497
+ subComponent(row),
498
+ );
474
499
  },
475
500
  [
476
501
  page,
477
502
  prepareRow,
478
503
  rowProps,
504
+ onRowInViewportRef,
505
+ onBottomReachedRef,
479
506
  intersectionMargin,
480
507
  state,
481
508
  onRowClickHandler,
@@ -487,8 +514,6 @@ export const Table = (props) => {
487
514
  enableVirtualization,
488
515
  tableRowRef,
489
516
  density,
490
- onBottomReachedRef,
491
- onRowInViewportRef,
492
517
  ],
493
518
  );
494
519
  let updateStickyState = () => {
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import type { PolymorphicForwardRefComponent } from '../../utils/index.js';
3
+ import type { VirtualItem } from '@tanstack/react-virtual';
4
+ type TableExpandableContentProps = {
5
+ children: React.ReactNode;
6
+ virtualItem?: VirtualItem<Element>;
7
+ isDisabled?: boolean;
8
+ };
9
+ export declare const TableExpandableContentMemoized: React.MemoExoticComponent<PolymorphicForwardRefComponent<"div", TableExpandableContentProps>>;
10
+ export {};
@@ -0,0 +1,33 @@
1
+ import cx from 'classnames';
2
+ import * as React from 'react';
3
+ import { Box } from '../../utils/index.js';
4
+ let TableExpandableContent = React.forwardRef((props, ref) => {
5
+ let { children, className, style, isDisabled, virtualItem, ...rest } = props;
6
+ return React.createElement(
7
+ Box,
8
+ {
9
+ className: cx('iui-table-row', 'iui-table-expanded-content', className),
10
+ style: {
11
+ flex: '0 0 auto',
12
+ minWidth: '100%',
13
+ ...(null != virtualItem
14
+ ? {
15
+ transform: `translateY(${virtualItem.start}px)`,
16
+ }
17
+ : {}),
18
+ ...style,
19
+ },
20
+ 'aria-disabled': isDisabled,
21
+ 'data-iui-index': virtualItem?.index,
22
+ ...(null != virtualItem && {
23
+ 'data-iui-virtualizer': 'item',
24
+ }),
25
+ ref: ref,
26
+ ...rest,
27
+ },
28
+ children,
29
+ );
30
+ });
31
+ export const TableExpandableContentMemoized = React.memo(
32
+ TableExpandableContent,
33
+ );
@@ -1,11 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import cx from 'classnames';
3
- import {
4
- Box,
5
- useIntersection,
6
- useMergedRefs,
7
- WithCSSTransition,
8
- } from '../../utils/index.js';
3
+ import { Box, useIntersection, useMergedRefs } from '../../utils/index.js';
9
4
  import { TableCell } from './TableCell.js';
10
5
  export const TableRow = (props) => {
11
6
  let {
@@ -106,21 +101,6 @@ export const TableRow = (props) => {
106
101
  }),
107
102
  ),
108
103
  ),
109
- subComponent &&
110
- React.createElement(
111
- WithCSSTransition,
112
- {
113
- in: row.isExpanded,
114
- },
115
- React.createElement(
116
- Box,
117
- {
118
- className: cx('iui-table-row', 'iui-table-expanded-content'),
119
- 'aria-disabled': isDisabled,
120
- },
121
- subComponent(row),
122
- ),
123
- ),
124
104
  );
125
105
  };
126
106
  let hasAnySelectedSubRow = (row, selectedRowIds) => {
@@ -1,5 +1,7 @@
1
1
  import { actions, makePropGetter, useGetLatest } from 'react-table';
2
2
  import { styles } from '../../../styles.js';
3
+ let leftClassName = styles['iui-table-reorder-column-left'];
4
+ let rightClassName = styles['iui-table-reorder-column-right'];
3
5
  let REORDER_ACTIONS = {
4
6
  columnDragStart: 'columnDragStart',
5
7
  columnDragEnd: 'columnDragEnd',
@@ -21,12 +23,16 @@ let defaultGetDragAndDropProps =
21
23
  };
22
24
  let setOnDragColumnStyle = (event, position) => {
23
25
  let columnElement = event.currentTarget;
24
- columnElement.classList.remove(styles['iui-table-reorder-column-right']);
25
- columnElement.classList.remove(styles['iui-table-reorder-column-left']);
26
- if ('left' === position)
27
- columnElement.classList.add(styles['iui-table-reorder-column-left']);
28
- else if ('right' === position)
29
- columnElement.classList.add(styles['iui-table-reorder-column-right']);
26
+ if ('left' === position) {
27
+ columnElement.classList.remove(rightClassName);
28
+ columnElement.classList.add(leftClassName);
29
+ } else if ('right' === position) {
30
+ columnElement.classList.remove(leftClassName);
31
+ columnElement.classList.add(rightClassName);
32
+ } else {
33
+ columnElement.classList.remove(leftClassName);
34
+ columnElement.classList.remove(rightClassName);
35
+ }
30
36
  };
31
37
  let reorderColumns = (tableColumns, srcIndex, dstIndex) => {
32
38
  let newTableColumns = [...tableColumns];
@@ -32,6 +32,7 @@ export const ThemeProvider = React.forwardRef((props, forwardedRef) => {
32
32
  includeCss = 'inherit' === themeProp,
33
33
  ...rest
34
34
  } = props;
35
+ useInertPolyfill();
35
36
  let [rootElement, setRootElement] = React.useState(null);
36
37
  let parent = useParentThemeAndContext(rootElement);
37
38
  let theme = 'inherit' === themeProp ? parent.theme || 'light' : themeProp;
@@ -254,3 +255,20 @@ let useIuiDebugRef = () => {
254
255
  var version, version1;
255
256
  _globalThis1.__iui.versions.add(JSON.stringify(meta));
256
257
  };
258
+ let useInertPolyfill = () => {
259
+ let loaded = React.useRef(false);
260
+ let modulePath =
261
+ 'https://cdn.jsdelivr.net/npm/wicg-inert@3.1.2/dist/inert.min.js';
262
+ React.useEffect(() => {
263
+ (async () => {
264
+ if (
265
+ !HTMLElement.prototype.hasOwnProperty('inert') &&
266
+ !loaded.current &&
267
+ !isUnitTest
268
+ ) {
269
+ await new Function('url', 'return import(url)')(modulePath);
270
+ loaded.current = true;
271
+ }
272
+ })();
273
+ }, []);
274
+ };
@@ -8,11 +8,10 @@ import {
8
8
  Box,
9
9
  useSafeContext,
10
10
  ButtonBase,
11
+ useMediaQuery,
11
12
  } from '../../utils/index.js';
12
13
  import { IconButton } from '../Buttons/IconButton.js';
13
14
  import { ToasterStateContext } from './Toaster.js';
14
- let isMotionOk = () =>
15
- getWindow()?.matchMedia?.('(prefers-reduced-motion: no-preference)')?.matches;
16
15
  export const Toast = (props) => {
17
16
  let {
18
17
  content,
@@ -34,6 +33,7 @@ export const Toast = (props) => {
34
33
  let [height, setHeight] = React.useState(0);
35
34
  let thisElement = React.useRef(null);
36
35
  let [margin, setMargin] = React.useState(0);
36
+ let motionOk = useMediaQuery('(prefers-reduced-motion: no-preference)');
37
37
  let marginStyle = () => {
38
38
  if ('top' === placementPosition)
39
39
  return {
@@ -98,16 +98,16 @@ export const Toast = (props) => {
98
98
  appear: true,
99
99
  unmountOnExit: true,
100
100
  onEnter: (node) => {
101
- if (isMotionOk()) {
101
+ if (motionOk) {
102
102
  node.style.transform = 'translateY(15%)';
103
103
  node.style.transitionTimingFunction = 'ease';
104
104
  }
105
105
  },
106
106
  onEntered: (node) => {
107
- if (isMotionOk()) node.style.transform = 'translateY(0)';
107
+ if (motionOk) node.style.transform = 'translateY(0)';
108
108
  },
109
109
  onExiting: (node) => {
110
- if (isMotionOk()) {
110
+ if (motionOk) {
111
111
  let { translateX, translateY } = calculateOutAnimation(node);
112
112
  node.style.transform = animateOutTo
113
113
  ? `scale(0.9) translate(${translateX}px,${translateY}px)`
package/esm/styles.js CHANGED
@@ -1,4 +1,4 @@
1
- const t = '3.14.2';
1
+ const t = '3.15.0';
2
2
  const u = new Proxy(
3
3
  {},
4
4
  {
@@ -50,6 +50,19 @@ function useShadowRoot(templateRef, { css = '' }) {
50
50
  let styleSheet = React.useRef();
51
51
  let latestCss = useLatestRef(css);
52
52
  let latestShadowRoot = useLatestRef(shadowRoot);
53
+ let createStyleSheet = React.useCallback(
54
+ (shadow) => {
55
+ if (shadow && supportsAdoptedStylesheets) {
56
+ let currentWindow = shadow.ownerDocument.defaultView || globalThis;
57
+ if (styleSheet.current instanceof currentWindow.CSSStyleSheet) return;
58
+ styleSheet.current = new currentWindow.CSSStyleSheet();
59
+ shadow.adoptedStyleSheets.push(styleSheet.current);
60
+ if (latestCss.current)
61
+ styleSheet.current.replaceSync(latestCss.current);
62
+ }
63
+ },
64
+ [latestCss],
65
+ );
53
66
  useLayoutEffect(() => {
54
67
  let parent = templateRef.current?.parentElement;
55
68
  if (!parent) return;
@@ -61,22 +74,23 @@ function useShadowRoot(templateRef, { css = '' }) {
61
74
  parent.attachShadow({
62
75
  mode: 'open',
63
76
  });
64
- if (supportsAdoptedStylesheets) {
65
- let currentWindow = shadow.ownerDocument.defaultView || globalThis;
66
- styleSheet.current = new currentWindow.CSSStyleSheet();
67
- shadow.adoptedStyleSheets = [styleSheet.current];
68
- if (latestCss.current)
69
- styleSheet.current.replaceSync(latestCss.current);
70
- }
77
+ createStyleSheet(shadow);
71
78
  ReactDOM.flushSync(() => setShadowRoot(shadow));
72
79
  };
73
80
  queueMicrotask(() => {
74
81
  setupOrReuseShadowRoot();
75
82
  });
76
83
  return () => void setShadowRoot(null);
77
- }, [templateRef, latestCss, latestShadowRoot]);
84
+ }, [templateRef, createStyleSheet, latestShadowRoot]);
78
85
  useLayoutEffect(() => {
79
86
  if (css && supportsAdoptedStylesheets) styleSheet.current?.replaceSync(css);
80
87
  }, [css]);
88
+ React.useEffect(() => {
89
+ let listener = () => createStyleSheet(latestShadowRoot.current);
90
+ window.addEventListener('appui:reparent', listener);
91
+ return () => {
92
+ window.removeEventListener('appui:reparent', listener);
93
+ };
94
+ }, [createStyleSheet, latestShadowRoot]);
81
95
  return shadowRoot;
82
96
  }
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { isUnitTest } from '../functions/dev.js';
3
+ import { getWindow } from '../functions/dom.js';
3
4
  let _React = React;
4
5
  let ReactInternals = _React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
5
6
  export const useWarningLogger = () => () => {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/itwinui-react",
3
- "version": "3.14.2",
3
+ "version": "3.15.0",
4
4
  "author": "Bentley Systems",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -106,7 +106,7 @@
106
106
  "react": "^18.0.0",
107
107
  "react-dom": "^18.0.0",
108
108
  "typescript": "5",
109
- "vite": "^5.1.7",
109
+ "vite": "~5.1.8",
110
110
  "vitest": "^1.2.1"
111
111
  },
112
112
  "peerDependencies": {
@@ -130,7 +130,7 @@
130
130
  "build:types": "tsc -p tsconfig.build.json --outDir esm && tsc -p tsconfig.build.json --outDir cjs",
131
131
  "build:styles": "vite build src/styles.js",
132
132
  "build:post": "node ./scripts/postBuild.mjs",
133
- "clean:build": "rimraf esm && rimraf cjs && rimraf DEV-esm && rimraf DEV-cjs",
133
+ "clean:build": "rimraf esm && rimraf cjs && rimraf DEV-esm && rimraf DEV-cjs && rimraf styles.css",
134
134
  "clean:coverage": "rimraf coverage",
135
135
  "clean": "rimraf .turbo && pnpm clean:coverage && pnpm clean:build && rimraf node_modules",
136
136
  "test": "pnpm test:types && pnpm test:unit",
@@ -140,9 +140,11 @@
140
140
  "format": "prettier --config .prettierrc **/*.{tsx,ts,js} --ignore-path .gitignore --write",
141
141
  "lint": "eslint \"**/*.{js,ts,tsx}\" --max-warnings=0",
142
142
  "lint:fix": "pnpm lint --fix && node ../../scripts/copyrightLinter.js --fix \"*/**/*.{js,ts,tsx}\"",
143
- "dev": "pnpm clean:build && concurrently \"pnpm dev:esm\" \"pnpm dev:cjs\" \"pnpm dev:styles\" \"pnpm dev:types\"",
144
- "dev:esm": "swc src -d esm --watch --strip-leading-paths",
145
- "dev:cjs": "swc src -d cjs --watch --strip-leading-paths -C module.type=commonjs",
143
+ "dev": "pnpm clean:build && concurrently \"pnpm dev:esm\" \"pnpm dev:dev-esm\" \"pnpm dev:cjs\" \"pnpm dev:dev-cjs\" \"pnpm dev:styles\" \"pnpm dev:types\"",
144
+ "dev:esm": "swc src -d esm --env-name='production' --watch --strip-leading-paths",
145
+ "dev:dev-esm": "swc src -d DEV-esm --env-name='development' --watch --strip-leading-paths",
146
+ "dev:cjs": "swc src -d cjs --env-name='production' --watch --strip-leading-paths -C module.type=commonjs",
147
+ "dev:dev-cjs": "swc src -d DEV-cjs --env-name='development' --watch --strip-leading-paths -C module.type=commonjs",
146
148
  "dev:types": "concurrently \"tsc -p tsconfig.build.json --outDir esm --watch --preserveWatchOutput\" \"tsc -p tsconfig.build.json --outDir cjs --watch --preserveWatchOutput\"",
147
149
  "dev:styles": "pnpm build:styles --watch"
148
150
  }