@dmsi/wedgekit-react 0.0.369 → 0.0.371

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 (205) hide show
  1. package/dist/{chunk-RLLQRVM7.js → chunk-2H35FETR.js} +18 -10
  2. package/dist/chunk-2IKT6IHB.js +190 -0
  3. package/dist/chunk-4UNWXB4A.js +89 -0
  4. package/dist/chunk-5IFPG6TS.js +17 -0
  5. package/dist/{chunk-6GAYJCFE.js → chunk-6DPFKSCT.js} +1 -1
  6. package/dist/{chunk-ZFOANBWG.js → chunk-AG43RS4Q.js} +2 -1
  7. package/dist/chunk-AJ5M6MVX.js +7 -0
  8. package/dist/chunk-AT4AWD6B.js +44 -0
  9. package/dist/chunk-BQNPOGD5.js +105 -0
  10. package/dist/chunk-CQFPNZTN.js +172 -0
  11. package/dist/chunk-EJSPFQCY.js +29 -0
  12. package/dist/chunk-ER6RCOH3.js +97 -0
  13. package/dist/{chunk-4VER5OEU.js → chunk-FBE2HGEF.js} +35 -11
  14. package/dist/chunk-HPQWEZJL.js +45 -0
  15. package/dist/{chunk-URCLLHO5.js → chunk-IBX6DVHU.js} +376 -102
  16. package/dist/{chunk-I3WFZOFY.js → chunk-J5V2JRIK.js} +1 -1
  17. package/dist/chunk-JGJUVJKD.js +283 -0
  18. package/dist/chunk-KEMCFN4U.js +78 -0
  19. package/dist/chunk-M6TSTDNZ.js +22 -0
  20. package/dist/chunk-M7INAUAJ.js +140 -0
  21. package/dist/chunk-MBZ55T2D.js +51 -0
  22. package/dist/chunk-N6PNLLNS.js +77 -0
  23. package/dist/{chunk-ZA5E7ZYM.js → chunk-NXGUDYRR.js} +1 -1
  24. package/dist/chunk-P36QKH26.js +143 -0
  25. package/dist/chunk-PTRZHGHA.js +89 -0
  26. package/dist/chunk-QVWYTQKL.js +29 -0
  27. package/dist/{chunk-6CPGOW6J.js → chunk-T36HX6QY.js} +6 -4
  28. package/dist/chunk-U6PUOGG4.js +114 -0
  29. package/dist/{chunk-NQXZBWDZ.js → chunk-V6U7LU6M.js} +15 -6
  30. package/dist/chunk-VJVY6NPF.js +32 -0
  31. package/dist/chunk-VVXPGI2P.js +61 -0
  32. package/dist/{chunk-ARQBSR3I.js → chunk-YCKRVNJ3.js} +4 -4
  33. package/dist/chunk-YYHQLQDQ.js +68 -0
  34. package/dist/components/Accordion.cjs +47 -14
  35. package/dist/components/Accordion.js +2 -2
  36. package/dist/components/CalendarRange.cjs +700 -46
  37. package/dist/components/CalendarRange.css +186 -3
  38. package/dist/components/CalendarRange.js +43 -11
  39. package/dist/components/CompactImagesPreview.cjs +485 -0
  40. package/dist/components/CompactImagesPreview.js +13 -0
  41. package/dist/components/ContentTabs.cjs +3 -2
  42. package/dist/components/ContentTabs.js +3 -2
  43. package/dist/components/DataGrid/ColumnSelectorHeaderCell/ColumnSelectorMenuOption.cjs +4687 -0
  44. package/dist/components/DataGrid/ColumnSelectorHeaderCell/ColumnSelectorMenuOption.css +5051 -0
  45. package/dist/components/DataGrid/ColumnSelectorHeaderCell/ColumnSelectorMenuOption.js +62 -0
  46. package/dist/components/DataGrid/ColumnSelectorHeaderCell/index.cjs +4687 -0
  47. package/dist/components/DataGrid/ColumnSelectorHeaderCell/index.css +5051 -0
  48. package/dist/components/DataGrid/ColumnSelectorHeaderCell/index.js +62 -0
  49. package/dist/components/DataGrid/PinnedColumns.cjs +4687 -0
  50. package/dist/components/DataGrid/PinnedColumns.css +5051 -0
  51. package/dist/components/DataGrid/PinnedColumns.js +62 -0
  52. package/dist/components/DataGrid/TableBody/LoadingCell.cjs +4689 -0
  53. package/dist/components/DataGrid/TableBody/LoadingCell.css +5051 -0
  54. package/dist/components/DataGrid/TableBody/LoadingCell.js +62 -0
  55. package/dist/components/DataGrid/TableBody/TableBodyRow.cjs +4689 -0
  56. package/dist/components/DataGrid/TableBody/TableBodyRow.css +5051 -0
  57. package/dist/components/DataGrid/TableBody/TableBodyRow.js +62 -0
  58. package/dist/components/DataGrid/TableBody/index.cjs +4689 -0
  59. package/dist/components/DataGrid/TableBody/index.css +5051 -0
  60. package/dist/components/DataGrid/TableBody/index.js +62 -0
  61. package/dist/components/DataGrid/index.cjs +4692 -0
  62. package/dist/components/DataGrid/index.css +5051 -0
  63. package/dist/components/DataGrid/index.js +65 -0
  64. package/dist/components/DataGrid/utils.cjs +4687 -0
  65. package/dist/components/DataGrid/utils.css +5051 -0
  66. package/dist/components/DataGrid/utils.js +62 -0
  67. package/dist/components/DataGridCell.js +6 -6
  68. package/dist/components/DateInput.cjs +721 -67
  69. package/dist/components/DateInput.css +186 -3
  70. package/dist/components/DateInput.js +45 -13
  71. package/dist/components/DateRangeInput.cjs +721 -67
  72. package/dist/components/DateRangeInput.css +186 -3
  73. package/dist/components/DateRangeInput.js +45 -13
  74. package/dist/components/FilterGroup.js +3 -3
  75. package/dist/components/Grid.cjs +3 -1
  76. package/dist/components/Grid.js +3 -92
  77. package/dist/components/ImagePlaceholder.cjs +65 -0
  78. package/dist/components/ImagePlaceholder.js +7 -0
  79. package/dist/components/Input.js +2 -2
  80. package/dist/components/MenuOption.js +2 -2
  81. package/dist/components/MobileDataGrid/ColumnList.cjs +845 -0
  82. package/dist/components/MobileDataGrid/ColumnList.js +17 -0
  83. package/dist/components/MobileDataGrid/ColumnSelector/index.cjs +4797 -0
  84. package/dist/components/MobileDataGrid/ColumnSelector/index.css +5051 -0
  85. package/dist/components/MobileDataGrid/ColumnSelector/index.js +62 -0
  86. package/dist/components/MobileDataGrid/GridContextProvider/GridContext.cjs +31 -0
  87. package/dist/components/MobileDataGrid/GridContextProvider/GridContext.js +7 -0
  88. package/dist/components/MobileDataGrid/GridContextProvider/index.cjs +177 -0
  89. package/dist/components/MobileDataGrid/GridContextProvider/index.js +8 -0
  90. package/dist/components/MobileDataGrid/MobileDataGridCard/MobileDataGridColumn.cjs +269 -0
  91. package/dist/components/MobileDataGrid/MobileDataGridCard/MobileDataGridColumn.js +9 -0
  92. package/dist/components/MobileDataGrid/MobileDataGridCard/index.cjs +790 -0
  93. package/dist/components/MobileDataGrid/MobileDataGridCard/index.js +16 -0
  94. package/dist/components/MobileDataGrid/MobileDataGridHeader.cjs +5059 -0
  95. package/dist/components/MobileDataGrid/MobileDataGridHeader.css +5051 -0
  96. package/dist/components/MobileDataGrid/MobileDataGridHeader.js +62 -0
  97. package/dist/components/MobileDataGrid/RowDetailModalProvider/ModalContent.cjs +509 -0
  98. package/dist/components/MobileDataGrid/RowDetailModalProvider/ModalContent.js +13 -0
  99. package/dist/components/MobileDataGrid/RowDetailModalProvider/index.cjs +1261 -0
  100. package/dist/components/MobileDataGrid/RowDetailModalProvider/index.js +27 -0
  101. package/dist/components/MobileDataGrid/index.cjs +5521 -0
  102. package/dist/components/MobileDataGrid/index.css +5051 -0
  103. package/dist/components/MobileDataGrid/index.js +62 -0
  104. package/dist/components/Modal.cjs +24 -13
  105. package/dist/components/Modal.js +3 -3
  106. package/dist/components/ModalHeader.cjs +6 -4
  107. package/dist/components/ModalHeader.js +1 -1
  108. package/dist/components/ModalScrim.cjs +2 -1
  109. package/dist/components/ModalScrim.js +1 -1
  110. package/dist/components/NestedMenu.js +4 -4
  111. package/dist/components/Notification.cjs +15 -6
  112. package/dist/components/Notification.js +1 -1
  113. package/dist/components/PDFViewer/DownloadIcon.cjs +394 -0
  114. package/dist/components/PDFViewer/DownloadIcon.js +10 -0
  115. package/dist/components/PDFViewer/PDFElement.cjs +515 -0
  116. package/dist/components/PDFViewer/PDFElement.js +11 -0
  117. package/dist/components/{MobileDataGrid.cjs → PDFViewer/PDFNavigation.cjs} +318 -402
  118. package/dist/components/PDFViewer/PDFNavigation.js +13 -0
  119. package/dist/components/PDFViewer/PDFPage.cjs +56 -0
  120. package/dist/components/PDFViewer/PDFPage.js +7 -0
  121. package/dist/components/{PDFViewer.cjs → PDFViewer/index.cjs} +290 -202
  122. package/dist/components/PDFViewer/index.js +29 -0
  123. package/dist/components/Password.js +2 -2
  124. package/dist/components/ProductImagePreview/CarouselPagination.cjs +75 -0
  125. package/dist/components/ProductImagePreview/CarouselPagination.js +7 -0
  126. package/dist/components/ProductImagePreview/MobileImageCarousel.cjs +214 -0
  127. package/dist/components/ProductImagePreview/MobileImageCarousel.js +7 -0
  128. package/dist/components/ProductImagePreview/ProductPrimaryImage.cjs +255 -0
  129. package/dist/components/ProductImagePreview/ProductPrimaryImage.js +9 -0
  130. package/dist/components/ProductImagePreview/Thumbnail.cjs +105 -0
  131. package/dist/components/ProductImagePreview/Thumbnail.js +8 -0
  132. package/dist/components/ProductImagePreview/ZoomWindow.cjs +198 -0
  133. package/dist/components/ProductImagePreview/ZoomWindow.js +8 -0
  134. package/dist/components/ProductImagePreview/index.cjs +1369 -0
  135. package/dist/components/ProductImagePreview/index.js +22 -0
  136. package/dist/components/Search.js +3 -3
  137. package/dist/components/Select.js +3 -3
  138. package/dist/components/SideMenuGroup.cjs +15 -6
  139. package/dist/components/SideMenuGroup.js +1 -1
  140. package/dist/components/SideMenuItem.cjs +15 -6
  141. package/dist/components/SideMenuItem.js +1 -1
  142. package/dist/components/SkeletonParagraph.cjs +33 -0
  143. package/dist/components/SkeletonParagraph.js +10 -0
  144. package/dist/components/Stack.cjs +15 -6
  145. package/dist/components/Stack.js +1 -1
  146. package/dist/components/Stepper.cjs +61 -53
  147. package/dist/components/Stepper.js +63 -55
  148. package/dist/components/Surface.js +3 -39
  149. package/dist/components/Swatch.cjs +15 -6
  150. package/dist/components/Swatch.js +4 -4
  151. package/dist/components/Time.cjs +15 -6
  152. package/dist/components/Time.js +5 -5
  153. package/dist/components/Upload.cjs +15 -6
  154. package/dist/components/Upload.js +1 -1
  155. package/dist/components/index.cjs +2559 -14
  156. package/dist/components/index.css +186 -3
  157. package/dist/components/index.js +57 -14
  158. package/dist/index.css +186 -3
  159. package/package.json +1 -1
  160. package/src/components/Accordion.tsx +23 -4
  161. package/src/components/CompactImagesPreview.tsx +99 -0
  162. package/src/components/ContentTabs.tsx +3 -1
  163. package/src/components/DataGrid/types.ts +5 -0
  164. package/src/components/Grid.tsx +2 -0
  165. package/src/components/ImagePlaceholder.tsx +22 -0
  166. package/src/components/MobileDataGrid/ColumnList.tsx +66 -0
  167. package/src/components/MobileDataGrid/ColumnSelector/index.tsx +97 -0
  168. package/src/components/MobileDataGrid/GridContextProvider/GridContext.tsx +25 -0
  169. package/src/components/MobileDataGrid/GridContextProvider/index.tsx +132 -0
  170. package/src/components/MobileDataGrid/GridContextProvider/useGridContext.ts +10 -0
  171. package/src/components/MobileDataGrid/MobileDataGridCard/MobileDataGridColumn.tsx +20 -0
  172. package/src/components/MobileDataGrid/MobileDataGridCard/index.tsx +129 -0
  173. package/src/components/MobileDataGrid/MobileDataGridHeader.tsx +80 -0
  174. package/src/components/MobileDataGrid/RowDetailModalProvider/ModalContent.tsx +42 -0
  175. package/src/components/MobileDataGrid/RowDetailModalProvider/index.tsx +68 -0
  176. package/src/components/MobileDataGrid/dataGridReducer.ts +55 -0
  177. package/src/components/MobileDataGrid/index.tsx +92 -0
  178. package/src/components/MobileDataGrid/types.ts +4 -0
  179. package/src/components/Modal.tsx +31 -12
  180. package/src/components/ModalButtons.tsx +1 -1
  181. package/src/components/ModalHeader.tsx +5 -2
  182. package/src/components/ModalScrim.tsx +3 -2
  183. package/src/components/PDFViewer/DownloadIcon.tsx +22 -0
  184. package/src/components/PDFViewer/PDFElement.tsx +90 -0
  185. package/src/components/PDFViewer/PDFNavigation.tsx +68 -0
  186. package/src/components/PDFViewer/PDFPage.tsx +34 -0
  187. package/src/components/PDFViewer/index.tsx +128 -0
  188. package/src/components/ProductImagePreview/CarouselPagination.tsx +54 -0
  189. package/src/components/ProductImagePreview/MobileImageCarousel.tsx +226 -0
  190. package/src/components/ProductImagePreview/ProductPrimaryImage.tsx +218 -0
  191. package/src/components/ProductImagePreview/Thumbnail.tsx +49 -0
  192. package/src/components/ProductImagePreview/ZoomWindow.tsx +136 -0
  193. package/src/components/ProductImagePreview/index.tsx +182 -0
  194. package/src/components/ProductImagePreview/useProductImagePreview.ts +211 -0
  195. package/src/components/SkeletonParagraph.tsx +5 -0
  196. package/src/components/Stack.tsx +29 -6
  197. package/src/components/Stepper.tsx +5 -1
  198. package/src/components/index.ts +4 -0
  199. package/src/types.ts +2 -1
  200. package/dist/components/MobileDataGrid.js +0 -150
  201. package/dist/components/PDFViewer.js +0 -250
  202. package/src/components/MobileDataGrid.tsx +0 -163
  203. package/src/components/PDFViewer.tsx +0 -264
  204. package/dist/{chunk-OXSBIBGT.js → chunk-CKQNJNU3.js} +3 -3
  205. package/dist/{chunk-RJUN52HJ.js → chunk-ZL5X7KP6.js} +3 -3
package/dist/index.css CHANGED
@@ -30,6 +30,7 @@
30
30
  --radius-sm: 0.25rem;
31
31
  --radius-md: 0.375rem;
32
32
  --radius-xl: 0.75rem;
33
+ --ease-out: cubic-bezier(0, 0, 0.2, 1);
33
34
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
34
35
  --default-transition-duration: 150ms;
35
36
  --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -651,6 +652,9 @@
651
652
  .mb-3 {
652
653
  margin-bottom: calc(var(--spacing) * 3);
653
654
  }
655
+ .mb-20 {
656
+ margin-bottom: calc(var(--spacing) * 20);
657
+ }
654
658
  .mb-mobile-container-padding {
655
659
  margin-bottom: var(--spacing-mobile-container-padding);
656
660
  }
@@ -748,6 +752,9 @@
748
752
  .h-60 {
749
753
  height: calc(var(--spacing) * 60);
750
754
  }
755
+ .h-\[24px\] {
756
+ height: 24px;
757
+ }
751
758
  .h-\[166px\] {
752
759
  height: 166px;
753
760
  }
@@ -784,6 +791,9 @@
784
791
  .min-h-19 {
785
792
  min-height: calc(var(--spacing) * 19);
786
793
  }
794
+ .min-h-20 {
795
+ min-height: calc(var(--spacing) * 20);
796
+ }
787
797
  .min-h-\[34px\] {
788
798
  min-height: 34px;
789
799
  }
@@ -853,9 +863,6 @@
853
863
  .w-screen {
854
864
  width: 100vw;
855
865
  }
856
- .\!max-w-fit {
857
- max-width: fit-content !important;
858
- }
859
866
  .max-w-25 {
860
867
  max-width: calc(var(--spacing) * 25);
861
868
  }
@@ -868,9 +875,15 @@
868
875
  .max-w-\[400px\] {
869
876
  max-width: 400px;
870
877
  }
878
+ .max-w-fit {
879
+ max-width: fit-content;
880
+ }
871
881
  .max-w-full {
872
882
  max-width: 100%;
873
883
  }
884
+ .max-w-none {
885
+ max-width: none;
886
+ }
874
887
  .max-w-screen {
875
888
  max-width: 100vw;
876
889
  }
@@ -883,6 +896,9 @@
883
896
  .min-w-20 {
884
897
  min-width: calc(var(--spacing) * 20);
885
898
  }
899
+ .min-w-32 {
900
+ min-width: calc(var(--spacing) * 32);
901
+ }
886
902
  .min-w-36 {
887
903
  min-width: calc(var(--spacing) * 36);
888
904
  }
@@ -895,6 +911,9 @@
895
911
  .flex-1 {
896
912
  flex: 1;
897
913
  }
914
+ .flex-shrink-0 {
915
+ flex-shrink: 0;
916
+ }
898
917
  .shrink {
899
918
  flex-shrink: 1;
900
919
  }
@@ -904,6 +923,9 @@
904
923
  .flex-grow {
905
924
  flex-grow: 1;
906
925
  }
926
+ .flex-grow-1 {
927
+ flex-grow: 1;
928
+ }
907
929
  .grow {
908
930
  flex-grow: 1;
909
931
  }
@@ -936,6 +958,9 @@
936
958
  .cursor-col-resize {
937
959
  cursor: col-resize;
938
960
  }
961
+ .cursor-crosshair {
962
+ cursor: crosshair;
963
+ }
939
964
  .cursor-default {
940
965
  cursor: default;
941
966
  }
@@ -954,6 +979,9 @@
954
979
  .list-disc {
955
980
  list-style-type: disc;
956
981
  }
982
+ .list-none {
983
+ list-style-type: none;
984
+ }
957
985
  .\[appearance\:textfield\] {
958
986
  appearance: textfield;
959
987
  }
@@ -981,9 +1009,15 @@
981
1009
  .flex-row {
982
1010
  flex-direction: row;
983
1011
  }
1012
+ .flex-wrap {
1013
+ flex-wrap: wrap;
1014
+ }
984
1015
  .place-content-center {
985
1016
  place-content: center;
986
1017
  }
1018
+ .place-items-center {
1019
+ place-items: center;
1020
+ }
987
1021
  .\!items-start {
988
1022
  align-items: flex-start !important;
989
1023
  }
@@ -1205,6 +1239,10 @@
1205
1239
  border-style: var(--tw-border-style);
1206
1240
  border-width: 1px;
1207
1241
  }
1242
+ .border-0 {
1243
+ border-style: var(--tw-border-style);
1244
+ border-width: 0px;
1245
+ }
1208
1246
  .border-2 {
1209
1247
  border-style: var(--tw-border-style);
1210
1248
  border-width: 2px;
@@ -1300,6 +1338,12 @@
1300
1338
  .border-warning-400 {
1301
1339
  border-color: var(--color-warning-400);
1302
1340
  }
1341
+ .border-white\/70 {
1342
+ border-color: color-mix(in srgb, #ffffff 70%, transparent);
1343
+ @supports (color: color-mix(in lab, red, red)) {
1344
+ border-color: color-mix(in oklab, var(--color-white) 70%, transparent);
1345
+ }
1346
+ }
1303
1347
  .border-y-action-400 {
1304
1348
  border-block-color: var(--color-action-400);
1305
1349
  }
@@ -1753,6 +1797,12 @@
1753
1797
  .bg-white {
1754
1798
  background-color: var(--color-white);
1755
1799
  }
1800
+ .bg-white\/10 {
1801
+ background-color: color-mix(in srgb, #ffffff 10%, transparent);
1802
+ @supports (color: color-mix(in lab, red, red)) {
1803
+ background-color: color-mix(in oklab, var(--color-white) 10%, transparent);
1804
+ }
1805
+ }
1756
1806
  .bg-linear-270 {
1757
1807
  --tw-gradient-position: 270deg;
1758
1808
  @supports (background-image: linear-gradient(in lab, red, red)) {
@@ -1764,6 +1814,10 @@
1764
1814
  --tw-gradient-position: to right in oklab;
1765
1815
  background-image: linear-gradient(var(--tw-gradient-stops));
1766
1816
  }
1817
+ .from-neutral-100 {
1818
+ --tw-gradient-from: var(--color-neutral-100);
1819
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
1820
+ }
1767
1821
  .from-neutral-300\/\[12\%\] {
1768
1822
  --tw-gradient-from: color-mix(in srgb, #c1c1c1 12%, transparent);
1769
1823
  @supports (color: color-mix(in lab, red, red)) {
@@ -1775,6 +1829,10 @@
1775
1829
  --tw-gradient-from: var(--color-white);
1776
1830
  --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
1777
1831
  }
1832
+ .to-\[\#f7f7f7\] {
1833
+ --tw-gradient-to: #f7f7f7;
1834
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
1835
+ }
1778
1836
  .to-neutral-300\/\[24\%\] {
1779
1837
  --tw-gradient-to: color-mix(in srgb, #c1c1c1 24%, transparent);
1780
1838
  @supports (color: color-mix(in lab, red, red)) {
@@ -1789,9 +1847,15 @@
1789
1847
  .object-contain {
1790
1848
  object-fit: contain;
1791
1849
  }
1850
+ .object-cover {
1851
+ object-fit: cover;
1852
+ }
1792
1853
  .object-center {
1793
1854
  object-position: center;
1794
1855
  }
1856
+ .\!p-0 {
1857
+ padding: calc(var(--spacing) * 0) !important;
1858
+ }
1795
1859
  .p-0\.5 {
1796
1860
  padding: calc(var(--spacing) * 0.5);
1797
1861
  }
@@ -2090,6 +2154,9 @@
2090
2154
  .text-action-400 {
2091
2155
  color: var(--color-action-400);
2092
2156
  }
2157
+ .text-brand-text-action-primary-normal {
2158
+ color: var(--color-brand-text-action-primary-normal);
2159
+ }
2093
2160
  .text-icon-action-critical-secondary-normal {
2094
2161
  color: var(--color-icon-action-critical-secondary-normal);
2095
2162
  }
@@ -2225,6 +2292,9 @@
2225
2292
  .opacity-40 {
2226
2293
  opacity: 40%;
2227
2294
  }
2295
+ .opacity-70 {
2296
+ opacity: 70%;
2297
+ }
2228
2298
  .opacity-100 {
2229
2299
  opacity: 100%;
2230
2300
  }
@@ -2255,6 +2325,15 @@
2255
2325
  var(--tw-ring-shadow),
2256
2326
  var(--tw-shadow);
2257
2327
  }
2328
+ .shadow-\[0_0_0_1px_rgba\(0\,0\,0\,0\.15\)\] {
2329
+ --tw-shadow: 0 0 0 1px var(--tw-shadow-color, rgba(0,0,0,0.15));
2330
+ box-shadow:
2331
+ var(--tw-inset-shadow),
2332
+ var(--tw-inset-ring-shadow),
2333
+ var(--tw-ring-offset-shadow),
2334
+ var(--tw-ring-shadow),
2335
+ var(--tw-shadow);
2336
+ }
2258
2337
  .shadow-nav-tab {
2259
2338
  --tw-shadow: 0px -4px 4px -4px var(--tw-shadow-color, rgba(0, 0, 0, 0.32)) inset;
2260
2339
  box-shadow:
@@ -2291,6 +2370,50 @@
2291
2370
  var(--tw-ring-shadow),
2292
2371
  var(--tw-shadow);
2293
2372
  }
2373
+ .ring-2 {
2374
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
2375
+ box-shadow:
2376
+ var(--tw-inset-shadow),
2377
+ var(--tw-inset-ring-shadow),
2378
+ var(--tw-ring-offset-shadow),
2379
+ var(--tw-ring-shadow),
2380
+ var(--tw-shadow);
2381
+ }
2382
+ .ring-\[3px\] {
2383
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
2384
+ box-shadow:
2385
+ var(--tw-inset-shadow),
2386
+ var(--tw-inset-ring-shadow),
2387
+ var(--tw-ring-offset-shadow),
2388
+ var(--tw-ring-shadow),
2389
+ var(--tw-shadow);
2390
+ }
2391
+ .ring-border-action-normal {
2392
+ --tw-ring-color: var(--color-border-action-normal);
2393
+ }
2394
+ .ring-brand-400 {
2395
+ --tw-ring-color: var(--color-brand-400);
2396
+ }
2397
+ .ring-brand-400\/0 {
2398
+ --tw-ring-color: var(--color-brand-400);
2399
+ @supports (color: color-mix(in lab, red, red)) {
2400
+ --tw-ring-color: color-mix(in oklab, var(--color-brand-400) 0%, transparent);
2401
+ }
2402
+ }
2403
+ .ring-neutral-300 {
2404
+ --tw-ring-color: var(--color-neutral-300);
2405
+ }
2406
+ .ring-offset-1 {
2407
+ --tw-ring-offset-width: 1px;
2408
+ --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
2409
+ }
2410
+ .ring-offset-2 {
2411
+ --tw-ring-offset-width: 2px;
2412
+ --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
2413
+ }
2414
+ .ring-offset-white {
2415
+ --tw-ring-offset-color: var(--color-white);
2416
+ }
2294
2417
  .outline {
2295
2418
  outline-style: var(--tw-outline-style);
2296
2419
  outline-width: 1px;
@@ -2319,6 +2442,11 @@
2319
2442
  .filter {
2320
2443
  filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
2321
2444
  }
2445
+ .backdrop-blur-\[1px\] {
2446
+ --tw-backdrop-blur: blur(1px);
2447
+ -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
2448
+ backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
2449
+ }
2322
2450
  .transition {
2323
2451
  transition-property:
2324
2452
  color,
@@ -2395,6 +2523,9 @@
2395
2523
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2396
2524
  transition-duration: var(--tw-duration, var(--default-transition-duration));
2397
2525
  }
2526
+ .transition-discrete {
2527
+ transition-behavior: allow-discrete;
2528
+ }
2398
2529
  .duration-100 {
2399
2530
  --tw-duration: 100ms;
2400
2531
  transition-duration: 100ms;
@@ -2411,6 +2542,10 @@
2411
2542
  --tw-ease: var(--ease-in-out);
2412
2543
  transition-timing-function: var(--ease-in-out);
2413
2544
  }
2545
+ .ease-out {
2546
+ --tw-ease: var(--ease-out);
2547
+ transition-timing-function: var(--ease-out);
2548
+ }
2414
2549
  .will-change-transform {
2415
2550
  will-change: transform;
2416
2551
  }
@@ -3117,6 +3252,11 @@
3117
3252
  outline-style: none;
3118
3253
  }
3119
3254
  }
3255
+ .active\:cursor-grabbing {
3256
+ &:active {
3257
+ cursor: grabbing;
3258
+ }
3259
+ }
3120
3260
  .active\:border-background-action-critical-primary-active {
3121
3261
  &:active {
3122
3262
  border-color: var(--color-background-action-critical-primary-active);
@@ -3543,6 +3683,16 @@
3543
3683
  grid-template-columns: repeat(2, minmax(0, 1fr));
3544
3684
  }
3545
3685
  }
3686
+ .md\:block {
3687
+ @media (width >= 768px) {
3688
+ display: block;
3689
+ }
3690
+ }
3691
+ .md\:hidden {
3692
+ @media (width >= 768px) {
3693
+ display: none;
3694
+ }
3695
+ }
3546
3696
  .md\:table-cell {
3547
3697
  @media (width >= 768px) {
3548
3698
  display: table-cell;
@@ -3954,6 +4104,16 @@
3954
4104
  gap: var(--spacing-desktop-layout-group-gap);
3955
4105
  }
3956
4106
  }
4107
+ .desktop\:bg-background-grouped-primary-normal {
4108
+ @container root (width >= 48rem) {
4109
+ background-color: var(--color-background-grouped-primary-normal);
4110
+ }
4111
+ }
4112
+ .desktop\:p-0 {
4113
+ @container root (width >= 48rem) {
4114
+ padding: calc(var(--spacing) * 0);
4115
+ }
4116
+ }
3957
4117
  .desktop\:p-4 {
3958
4118
  @container root (width >= 48rem) {
3959
4119
  padding: calc(var(--spacing) * 4);
@@ -4175,6 +4335,11 @@
4175
4335
  line-height: var(--leading-subheader-desktop);
4176
4336
  }
4177
4337
  }
4338
+ .desktop\:text-icon-primary-normal {
4339
+ @container root (width >= 48rem) {
4340
+ color: var(--color-icon-primary-normal);
4341
+ }
4342
+ }
4178
4343
  .desktop\:\*\:py-desktop-component-padding {
4179
4344
  @container root (width >= 48rem) {
4180
4345
  :is(& > *) {
@@ -4768,6 +4933,15 @@ body {
4768
4933
  @property --tw-drop-shadow-color { syntax: "*"; inherits: false; }
4769
4934
  @property --tw-drop-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }
4770
4935
  @property --tw-drop-shadow-size { syntax: "*"; inherits: false; }
4936
+ @property --tw-backdrop-blur { syntax: "*"; inherits: false; }
4937
+ @property --tw-backdrop-brightness { syntax: "*"; inherits: false; }
4938
+ @property --tw-backdrop-contrast { syntax: "*"; inherits: false; }
4939
+ @property --tw-backdrop-grayscale { syntax: "*"; inherits: false; }
4940
+ @property --tw-backdrop-hue-rotate { syntax: "*"; inherits: false; }
4941
+ @property --tw-backdrop-invert { syntax: "*"; inherits: false; }
4942
+ @property --tw-backdrop-opacity { syntax: "*"; inherits: false; }
4943
+ @property --tw-backdrop-saturate { syntax: "*"; inherits: false; }
4944
+ @property --tw-backdrop-sepia { syntax: "*"; inherits: false; }
4771
4945
  @property --tw-duration { syntax: "*"; inherits: false; }
4772
4946
  @property --tw-ease { syntax: "*"; inherits: false; }
4773
4947
  @property --tw-contain-size { syntax: "*"; inherits: false; }
@@ -4833,6 +5007,15 @@ body {
4833
5007
  --tw-drop-shadow-color: initial;
4834
5008
  --tw-drop-shadow-alpha: 100%;
4835
5009
  --tw-drop-shadow-size: initial;
5010
+ --tw-backdrop-blur: initial;
5011
+ --tw-backdrop-brightness: initial;
5012
+ --tw-backdrop-contrast: initial;
5013
+ --tw-backdrop-grayscale: initial;
5014
+ --tw-backdrop-hue-rotate: initial;
5015
+ --tw-backdrop-invert: initial;
5016
+ --tw-backdrop-opacity: initial;
5017
+ --tw-backdrop-saturate: initial;
5018
+ --tw-backdrop-sepia: initial;
4836
5019
  --tw-duration: initial;
4837
5020
  --tw-ease: initial;
4838
5021
  --tw-contain-size: initial;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dmsi/wedgekit-react",
3
3
  "private": false,
4
- "version": "0.0.369",
4
+ "version": "0.0.371",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "build": "tsup",
@@ -17,10 +17,18 @@ interface AccordionProps {
17
17
  className?: string;
18
18
  disabled?: boolean;
19
19
  testid?: string;
20
+ titleAlign?: "start" | "center" | "end";
20
21
  }
21
22
 
22
23
  export function Accordion(props: AccordionProps) {
23
- const { isOpen, onClick, className, disabled, testid } = props;
24
+ const {
25
+ isOpen,
26
+ onClick,
27
+ className,
28
+ disabled,
29
+ testid,
30
+ titleAlign = "center",
31
+ } = props;
24
32
  const {
25
33
  title,
26
34
  before,
@@ -53,11 +61,22 @@ export function Accordion(props: AccordionProps) {
53
61
  onClick={handleClick}
54
62
  testid={testid}
55
63
  >
56
- <Stack sizing="component" horizontal justify="between" items="center">
57
- <Stack sizing="layout-group" horizontal items="center">
64
+ <Stack
65
+ sizing="component"
66
+ horizontal
67
+ horizontalMobile
68
+ justify="between"
69
+ items="center"
70
+ >
71
+ <Stack sizing="layout-group" horizontal items={titleAlign}>
58
72
  {before}
59
73
  {typeof title === "string" ? (
60
- <Paragraph testid={testid ? `${testid}-title` : undefined} className="text-text-primary-normal">{title}</Paragraph>
74
+ <Paragraph
75
+ testid={testid ? `${testid}-title` : undefined}
76
+ className="text-text-primary-normal"
77
+ >
78
+ {title}
79
+ </Paragraph>
61
80
  ) : (
62
81
  title
63
82
  )}
@@ -0,0 +1,99 @@
1
+ import { useCallback } from "react";
2
+ import { Stack } from "./Stack";
3
+ import clsx from "clsx";
4
+ import { useMatchesMobile } from "../hooks";
5
+
6
+ type ImageSource = { uri: string; name: string };
7
+
8
+ type CompactImagesPreviewProps = {
9
+ sources: ImageSource[];
10
+ currentSourceIndex: number;
11
+ placeholderImageUri?: string;
12
+ activeImageWidth?: number;
13
+ activeImageHeight?: number;
14
+ thumbnailWidth?: number;
15
+ thumbnailHeight?: number;
16
+ enableThumbnailBorder?: boolean;
17
+ onChangeSource: (newIndex: number) => void;
18
+ };
19
+ export function CompactImagesPreview(props: CompactImagesPreviewProps) {
20
+ const {
21
+ sources,
22
+ currentSourceIndex = 0,
23
+ activeImageHeight = 243,
24
+ activeImageWidth = 242,
25
+ thumbnailWidth = 30.5,
26
+ thumbnailHeight = 30,
27
+ enableThumbnailBorder = false,
28
+ placeholderImageUri,
29
+ onChangeSource,
30
+ } = props;
31
+ const isMobile = useMatchesMobile();
32
+ const imagesCount = sources.length;
33
+
34
+ const handleThumbnailClick = useCallback(
35
+ (newIndex: number) => {
36
+ if (newIndex === currentSourceIndex) return;
37
+ if (newIndex < 0 || newIndex >= imagesCount) return;
38
+ onChangeSource(newIndex);
39
+ },
40
+ [currentSourceIndex, onChangeSource, imagesCount],
41
+ );
42
+
43
+ if (
44
+ !sources.length ||
45
+ currentSourceIndex >= sources.length ||
46
+ typeof isMobile === "undefined"
47
+ )
48
+ return (
49
+ <img
50
+ className="object-center"
51
+ style={{ width: activeImageWidth, height: activeImageHeight }}
52
+ src={placeholderImageUri}
53
+ alt={"placeholder image"}
54
+ />
55
+ );
56
+ const currentSource = sources[currentSourceIndex];
57
+ return (
58
+ <Stack sizing="layout">
59
+ <img
60
+ style={{
61
+ width: isMobile ? "100%" : activeImageWidth,
62
+ height: activeImageHeight,
63
+ objectPosition: "center",
64
+ }}
65
+ src={currentSource.uri}
66
+ alt={currentSource.name}
67
+ />
68
+ {sources.length > 1 && (
69
+ <div className="flex flex-row flex-wrap items-center gap-3">
70
+ {sources.map((source, index) => (
71
+ <button
72
+ key={`compact-image-${source.uri}-${index}`}
73
+ onClick={(e) => {
74
+ e.preventDefault();
75
+ handleThumbnailClick(index);
76
+ }}
77
+ className={clsx(
78
+ "cursor-pointer",
79
+ currentSourceIndex === index && enableThumbnailBorder
80
+ ? "ring-2 ring-offset-2 ring-brand-400 transition-discrete duration-300"
81
+ : "ring-brand-400/0",
82
+ )}
83
+ >
84
+ <img
85
+ src={source.uri}
86
+ alt={source.name}
87
+ style={{
88
+ width: thumbnailWidth,
89
+ height: thumbnailHeight,
90
+ objectPosition: "center",
91
+ }}
92
+ />
93
+ </button>
94
+ ))}
95
+ </div>
96
+ )}
97
+ </Stack>
98
+ );
99
+ }
@@ -21,6 +21,7 @@ export type ContentTabsProps = {
21
21
  id?: string;
22
22
  testid?: string;
23
23
  selectedTab?: SelectedTab | null;
24
+ contentPadding?: boolean;
24
25
  };
25
26
 
26
27
  const afterClasses =
@@ -33,6 +34,7 @@ export const ContentTabs = ({
33
34
  id,
34
35
  testid,
35
36
  selectedTab,
37
+ contentPadding = true,
36
38
  }: ContentTabsProps) => {
37
39
  const [selectedTabId, setSelectedTabId] = useState<string>(tabs[0]?.id || "");
38
40
  const [focusedTabIndex, setFocusedTabIndex] = useState<number>(0);
@@ -75,7 +77,7 @@ export const ContentTabs = ({
75
77
 
76
78
  return (
77
79
  <div id={id} data-testid={testid}>
78
- <div className="overflow-x-auto pb-2">
80
+ <div className={clsx("overflow-x-auto", contentPadding && "pb-2")}>
79
81
  <div
80
82
  id={id ? `${id}-tablist` : undefined}
81
83
  data-testid={testid ? `${testid}-tablist` : undefined}
@@ -87,5 +87,10 @@ declare module "@tanstack/react-table" {
87
87
  }) => ReactNode;
88
88
  align?: "left" | "right";
89
89
  format?: string;
90
+ mobileCell?: (props: {
91
+ column: ColumnDef<TData>;
92
+ cellValue: unknown;
93
+ row: RowData;
94
+ }) => React.ReactNode;
90
95
  }
91
96
  }
@@ -91,6 +91,7 @@ export const Grid = ({
91
91
  columns,
92
92
  id,
93
93
  testid,
94
+ style,
94
95
  }: GridProps) => {
95
96
  const childCount = Children.count(children);
96
97
  return (
@@ -121,6 +122,7 @@ export const Grid = ({
121
122
  "w-full grid",
122
123
  getGridClasses(childCount, hasSideMenu, columns),
123
124
  )}
125
+ style={style}
124
126
  >
125
127
  {children}
126
128
  </div>
@@ -0,0 +1,22 @@
1
+ import { SVGProps, useId } from "react";
2
+ export function ImagePlaceholder(props: SVGProps<SVGSVGElement>) {
3
+ const clipId = useId();
4
+ return (
5
+ <svg
6
+ xmlns="http://www.w3.org/2000/svg"
7
+ width={242}
8
+ height={243}
9
+ fill="none"
10
+ {...props}
11
+ >
12
+ <g clipPath={`url(#${clipId})`}>
13
+ <rect width={props.width} height={props.width} fill="#F7F7F7" rx={2} />
14
+ </g>
15
+ <defs>
16
+ <clipPath id={clipId}>
17
+ <rect width={props.width} height={props.width} fill="#fff" rx={2} />
18
+ </clipPath>
19
+ </defs>
20
+ </svg>
21
+ );
22
+ }
@@ -0,0 +1,66 @@
1
+ import clsx from "clsx";
2
+ import { useGridContext } from "./GridContextProvider/useGridContext";
3
+ import { MobileDataGridCard } from "./MobileDataGridCard";
4
+ import { GridContextType } from "./GridContextProvider/GridContext";
5
+ import { RowActions } from "./types";
6
+
7
+ type ColumnListProps<T> = {
8
+ withBorder?: boolean;
9
+ renderLink?: (data: T) => React.ReactNode;
10
+ renderChevron?: boolean;
11
+ enableRowSelection?: boolean;
12
+ footer?: (ctx: GridContextType<T>) => React.ReactNode;
13
+ rowActions?: RowActions<T>;
14
+ };
15
+ export function ColumnList<T extends Record<string, unknown>>(
16
+ props: ColumnListProps<T>,
17
+ ) {
18
+ const {
19
+ withBorder,
20
+ renderLink,
21
+ renderChevron,
22
+ footer: Footer,
23
+ enableRowSelection,
24
+ rowActions,
25
+ } = props;
26
+ const ctx = useGridContext<T>();
27
+ const { id, testid, data, getId, selectedRowIds } = ctx;
28
+ return (
29
+ <div
30
+ className={clsx(
31
+ "flex flex-col flex-1 relative overflow-y-auto overflow-x-hidden",
32
+ !!Footer && "mb-20",
33
+ )}
34
+ >
35
+ <ul
36
+ id={id}
37
+ data-testid={testid}
38
+ className={clsx(
39
+ "rounded absolute top-0 left-0 w-full flex-1",
40
+ "divide-y divide-border-primary-normal",
41
+ withBorder && "border border-border-primary-normal",
42
+ )}
43
+ >
44
+ {data.map((item) => {
45
+ const id = getId(item);
46
+ return (
47
+ <MobileDataGridCard
48
+ data={item}
49
+ key={id}
50
+ renderLink={renderLink}
51
+ enableRowSelection={enableRowSelection}
52
+ selected={!!id && selectedRowIds.includes(id)}
53
+ renderChevron={renderChevron}
54
+ rowActions={rowActions}
55
+ />
56
+ );
57
+ })}
58
+ {!!Footer && (
59
+ <div className="fixed left-0 right-0 bottom-0 flex flex-col w-full min-h-20">
60
+ <Footer {...ctx} />
61
+ </div>
62
+ )}
63
+ </ul>
64
+ </div>
65
+ );
66
+ }