react-science 19.2.0 → 19.3.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 (140) hide show
  1. package/lib/components/accordion/accordion.js +1 -1
  2. package/lib/components/color-picker/react-color/ColorPicker.d.ts.map +1 -1
  3. package/lib/components/color-picker/react-color/ColorPicker.js +7 -5
  4. package/lib/components/color-picker/react-color/ColorPicker.js.map +1 -1
  5. package/lib/components/doi/doi.js +2 -2
  6. package/lib/components/doi/doi.js.map +1 -1
  7. package/lib/components/doi/doi_logo.d.ts +6 -0
  8. package/lib/components/doi/doi_logo.d.ts.map +1 -0
  9. package/lib/components/doi/doi_logo.js +16 -0
  10. package/lib/components/doi/doi_logo.js.map +1 -0
  11. package/lib/components/form/components/input/checkbox.d.ts +3 -1
  12. package/lib/components/form/components/input/checkbox.d.ts.map +1 -1
  13. package/lib/components/form/components/input/checkbox.js +10 -3
  14. package/lib/components/form/components/input/checkbox.js.map +1 -1
  15. package/lib/components/form/components/input/input.d.ts +3 -5
  16. package/lib/components/form/components/input/input.d.ts.map +1 -1
  17. package/lib/components/form/components/input/input.js +4 -3
  18. package/lib/components/form/components/input/input.js.map +1 -1
  19. package/lib/components/form/components/input/numeric_input.d.ts +5 -4
  20. package/lib/components/form/components/input/numeric_input.d.ts.map +1 -1
  21. package/lib/components/form/components/input/numeric_input.js +4 -5
  22. package/lib/components/form/components/input/numeric_input.js.map +1 -1
  23. package/lib/components/form/components/input/select.d.ts +2 -3
  24. package/lib/components/form/components/input/select.d.ts.map +1 -1
  25. package/lib/components/form/components/input/select.js +4 -8
  26. package/lib/components/form/components/input/select.js.map +1 -1
  27. package/lib/components/form/components/input/switch.d.ts +4 -0
  28. package/lib/components/form/components/input/switch.d.ts.map +1 -1
  29. package/lib/components/form/components/input/switch.js +11 -3
  30. package/lib/components/form/components/input/switch.js.map +1 -1
  31. package/lib/components/form/components/input_groups/form.d.ts +11 -0
  32. package/lib/components/form/components/input_groups/form.d.ts.map +1 -0
  33. package/lib/components/form/components/input_groups/form.js +17 -0
  34. package/lib/components/form/components/input_groups/form.js.map +1 -0
  35. package/lib/components/form/components/input_groups/form_group.d.ts +25 -0
  36. package/lib/components/form/components/input_groups/form_group.d.ts.map +1 -0
  37. package/lib/components/form/components/input_groups/form_group.js +45 -0
  38. package/lib/components/form/components/input_groups/form_group.js.map +1 -0
  39. package/lib/components/form/components/input_groups/select.d.ts +3 -6
  40. package/lib/components/form/components/input_groups/select.d.ts.map +1 -1
  41. package/lib/components/form/components/input_groups/select.js +3 -6
  42. package/lib/components/form/components/input_groups/select.js.map +1 -1
  43. package/lib/components/form/components/layout/Section.d.ts +9 -0
  44. package/lib/components/form/components/layout/Section.d.ts.map +1 -0
  45. package/lib/components/form/components/layout/Section.js +38 -0
  46. package/lib/components/form/components/layout/Section.js.map +1 -0
  47. package/lib/components/form/context/use_ts_form.d.ts +4 -0
  48. package/lib/components/form/context/use_ts_form.d.ts.map +1 -1
  49. package/lib/components/form/context/use_ts_form.js +2 -0
  50. package/lib/components/form/context/use_ts_form.js.map +1 -1
  51. package/lib/components/index.d.ts +1 -0
  52. package/lib/components/index.d.ts.map +1 -1
  53. package/lib/components/index.js +1 -0
  54. package/lib/components/index.js.map +1 -1
  55. package/lib/components/info-panel/InfoPanel.d.ts.map +1 -1
  56. package/lib/components/info-panel/InfoPanel.js +3 -3
  57. package/lib/components/info-panel/InfoPanel.js.map +1 -1
  58. package/lib/components/input/radio-button-group/RadioButton.js +4 -4
  59. package/lib/components/input/radio-button-group/RadioButtonGroup.js +2 -2
  60. package/lib/components/root-layout/css-reset/customPreflight.js +1 -1
  61. package/lib/components/split_pane/use_split_pane_size.d.ts.map +1 -1
  62. package/lib/components/split_pane/use_split_pane_size.js +47 -46
  63. package/lib/components/split_pane/use_split_pane_size.js.map +1 -1
  64. package/lib/components/svg/index.d.ts +5 -0
  65. package/lib/components/svg/index.d.ts.map +1 -0
  66. package/lib/components/svg/index.js +5 -0
  67. package/lib/components/svg/index.js.map +1 -0
  68. package/lib/components/svg/styled/svg_styled_line.d.ts +6 -0
  69. package/lib/components/svg/styled/svg_styled_line.d.ts.map +1 -0
  70. package/lib/components/svg/styled/svg_styled_line.js +7 -0
  71. package/lib/components/svg/styled/svg_styled_line.js.map +1 -0
  72. package/lib/components/svg/styled/svg_styled_path.d.ts +6 -0
  73. package/lib/components/svg/styled/svg_styled_path.d.ts.map +1 -0
  74. package/lib/components/svg/styled/svg_styled_path.js +7 -0
  75. package/lib/components/svg/styled/svg_styled_path.js.map +1 -0
  76. package/lib/components/svg/styled/svg_styled_text.d.ts +6 -0
  77. package/lib/components/svg/styled/svg_styled_text.d.ts.map +1 -0
  78. package/lib/components/svg/styled/svg_styled_text.js +6 -0
  79. package/lib/components/svg/styled/svg_styled_text.js.map +1 -0
  80. package/lib/components/svg/styled/svg_styled_types.d.ts +56 -0
  81. package/lib/components/svg/styled/svg_styled_types.d.ts.map +1 -0
  82. package/lib/components/svg/styled/svg_styled_types.js +2 -0
  83. package/lib/components/svg/styled/svg_styled_types.js.map +1 -0
  84. package/lib/components/svg/styled/svg_styled_utils.d.ts +3 -0
  85. package/lib/components/svg/styled/svg_styled_utils.d.ts.map +1 -0
  86. package/lib/components/svg/styled/svg_styled_utils.js +10 -0
  87. package/lib/components/svg/styled/svg_styled_utils.js.map +1 -0
  88. package/lib/components/table/reorder_rows/use_drop_monitor.d.ts.map +1 -1
  89. package/lib/components/table/reorder_rows/use_drop_monitor.js +33 -32
  90. package/lib/components/table/reorder_rows/use_drop_monitor.js.map +1 -1
  91. package/lib/components/toolbar/PanelPreferencesToolbar.js +1 -1
  92. package/lib/components/toolbar/Toolbar.d.ts.map +1 -1
  93. package/lib/components/toolbar/Toolbar.js +5 -4
  94. package/lib/components/toolbar/Toolbar.js.map +1 -1
  95. package/lib/components/toolbar/TooltipHelpContent.js +3 -3
  96. package/package.json +36 -35
  97. package/src/components/accordion/accordion.tsx +1 -1
  98. package/src/components/color-picker/react-color/ColorPicker.tsx +8 -6
  99. package/src/components/doi/doi.tsx +2 -2
  100. package/src/components/doi/{Logo.tsx → doi_logo.tsx} +9 -5
  101. package/src/components/form/components/input/checkbox.tsx +23 -6
  102. package/src/components/form/components/input/input.tsx +35 -15
  103. package/src/components/form/components/input/numeric_input.tsx +30 -15
  104. package/src/components/form/components/input/select.tsx +24 -17
  105. package/src/components/form/components/input/switch.tsx +27 -5
  106. package/src/components/form/components/input_groups/form.tsx +32 -0
  107. package/src/components/form/components/input_groups/form_group.tsx +126 -0
  108. package/src/components/form/components/input_groups/select.tsx +25 -46
  109. package/src/components/form/components/layout/Section.tsx +57 -0
  110. package/src/components/form/context/use_ts_form.ts +2 -0
  111. package/src/components/index.ts +1 -0
  112. package/src/components/info-panel/InfoPanel.tsx +4 -3
  113. package/src/components/input/radio-button-group/RadioButton.tsx +4 -4
  114. package/src/components/input/radio-button-group/RadioButtonGroup.tsx +2 -2
  115. package/src/components/root-layout/css-reset/customPreflight.ts +1 -1
  116. package/src/components/split_pane/use_split_pane_size.tsx +54 -53
  117. package/src/components/svg/index.ts +4 -0
  118. package/src/components/svg/styled/svg_styled_line.tsx +27 -0
  119. package/src/components/svg/styled/svg_styled_path.tsx +29 -0
  120. package/src/components/svg/styled/svg_styled_text.tsx +12 -0
  121. package/src/components/svg/styled/svg_styled_types.ts +67 -0
  122. package/src/components/svg/styled/svg_styled_utils.ts +15 -0
  123. package/src/components/table/reorder_rows/use_drop_monitor.ts +41 -38
  124. package/src/components/toolbar/PanelPreferencesToolbar.tsx +1 -1
  125. package/src/components/toolbar/Toolbar.tsx +7 -4
  126. package/src/components/toolbar/TooltipHelpContent.tsx +3 -3
  127. package/lib/components/doi/Logo.d.ts +0 -6
  128. package/lib/components/doi/Logo.d.ts.map +0 -1
  129. package/lib/components/doi/Logo.js +0 -16
  130. package/lib/components/doi/Logo.js.map +0 -1
  131. package/lib/components/form/components/hooks/use_input_id.d.ts +0 -8
  132. package/lib/components/form/components/hooks/use_input_id.d.ts.map +0 -1
  133. package/lib/components/form/components/hooks/use_input_id.js +0 -15
  134. package/lib/components/form/components/hooks/use_input_id.js.map +0 -1
  135. package/lib/components/form/components/input_groups/input.d.ts +0 -20
  136. package/lib/components/form/components/input_groups/input.d.ts.map +0 -1
  137. package/lib/components/form/components/input_groups/input.js +0 -9
  138. package/lib/components/form/components/input_groups/input.js.map +0 -1
  139. package/src/components/form/components/hooks/use_input_id.ts +0 -19
  140. package/src/components/form/components/input_groups/input.tsx +0 -63
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=svg_styled_types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg_styled_types.js","sourceRoot":"","sources":["../../../../src/components/svg/styled/svg_styled_types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { SVGStyledLineStrokePattern } from './svg_styled_types.js';
2
+ export declare function computeStrokeDasharray(pattern: SVGStyledLineStrokePattern, width: number): string;
3
+ //# sourceMappingURL=svg_styled_utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg_styled_utils.d.ts","sourceRoot":"","sources":["../../../../src/components/svg/styled/svg_styled_utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAExE,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,0BAA0B,EACnC,KAAK,EAAE,MAAM,GACZ,MAAM,CAOR"}
@@ -0,0 +1,10 @@
1
+ import { match } from 'ts-pattern';
2
+ export function computeStrokeDasharray(pattern, width) {
3
+ return match(pattern)
4
+ .with('solid', () => '')
5
+ .with('dashed', () => `${4 * width} ${4 * width}`)
6
+ .with('dotted', () => `${width} ${width}`)
7
+ .with('dashed-dot', () => `${4 * width} ${width} ${width} ${width}`)
8
+ .exhaustive();
9
+ }
10
+ //# sourceMappingURL=svg_styled_utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg_styled_utils.js","sourceRoot":"","sources":["../../../../src/components/svg/styled/svg_styled_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAInC,MAAM,UAAU,sBAAsB,CACpC,OAAmC,EACnC,KAAa;IAEb,OAAO,KAAK,CAAC,OAAO,CAAC;SAClB,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;SACvB,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC;SACjD,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK,IAAI,KAAK,EAAE,CAAC;SACzC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;SACnE,UAAU,EAAE,CAAC;AAClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"use_drop_monitor.d.ts","sourceRoot":"","sources":["../../../../src/components/table/reorder_rows/use_drop_monitor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAevC;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,gBAAgB,EAAE,SAAS,CAAC,OAAO,CAAC,EACpC,OAAO,EAAE,OAAO,QAmDjB"}
1
+ {"version":3,"file":"use_drop_monitor.d.ts","sourceRoot":"","sources":["../../../../src/components/table/reorder_rows/use_drop_monitor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAevC;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,gBAAgB,EAAE,SAAS,CAAC,OAAO,CAAC,EACpC,OAAO,EAAE,OAAO,QAsDjB"}
@@ -14,41 +14,42 @@ export function useDropMonitor(scrollElementRef, enabled) {
14
14
  const { reorderItem, items } = useItemOrder();
15
15
  const [, setFlashedRow] = useFlashedRowContext();
16
16
  useEffect(() => {
17
+ if (!enabled) {
18
+ return;
19
+ }
17
20
  const scrollContainer = scrollElementRef.current;
18
21
  assert(scrollContainer, 'Missing scroll container ref');
19
- if (enabled) {
20
- function canRespond({ source }) {
21
- return isItemData(source.data);
22
- }
23
- return combine(monitorForElements({
24
- canMonitor: canRespond,
25
- onDrop({ location, source }) {
26
- const target = location.current.dropTargets[0];
27
- if (!target) {
28
- return;
29
- }
30
- const sourceData = source.data;
31
- const targetData = target.data;
32
- if (!isItemData(sourceData) || !isItemData(targetData)) {
33
- return;
34
- }
35
- const indexOfTarget = items.findIndex((item) => item.id === targetData.id);
36
- if (indexOfTarget === -1) {
37
- return;
38
- }
39
- const closestEdgeOfTarget = extractClosestEdge(targetData);
40
- reorderItem({
41
- startIndex: sourceData.index,
42
- indexOfTarget,
43
- closestEdgeOfTarget,
44
- });
45
- setFlashedRow(sourceData.id);
46
- },
47
- }), autoScrollForElements({
48
- canScroll: canRespond,
49
- element: scrollContainer,
50
- }));
22
+ function canRespond({ source }) {
23
+ return isItemData(source.data);
51
24
  }
25
+ return combine(monitorForElements({
26
+ canMonitor: canRespond,
27
+ onDrop({ location, source }) {
28
+ const target = location.current.dropTargets[0];
29
+ if (!target) {
30
+ return;
31
+ }
32
+ const sourceData = source.data;
33
+ const targetData = target.data;
34
+ if (!isItemData(sourceData) || !isItemData(targetData)) {
35
+ return;
36
+ }
37
+ const indexOfTarget = items.findIndex((item) => item.id === targetData.id);
38
+ if (indexOfTarget === -1) {
39
+ return;
40
+ }
41
+ const closestEdgeOfTarget = extractClosestEdge(targetData);
42
+ reorderItem({
43
+ startIndex: sourceData.index,
44
+ indexOfTarget,
45
+ closestEdgeOfTarget,
46
+ });
47
+ setFlashedRow(sourceData.id);
48
+ },
49
+ }), autoScrollForElements({
50
+ canScroll: canRespond,
51
+ element: scrollContainer,
52
+ }));
52
53
  }, [items, reorderItem, scrollElementRef, setFlashedRow, enabled]);
53
54
  }
54
55
  //# sourceMappingURL=use_drop_monitor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use_drop_monitor.js","sourceRoot":"","sources":["../../../../src/components/table/reorder_rows/use_drop_monitor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EACL,qBAAqB,EACrB,OAAO,EACP,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,gBAAoC,EACpC,OAAgB;IAEhB,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,CAAC;IAC9C,MAAM,CAAC,EAAE,aAAa,CAAC,GAAG,oBAAoB,EAAE,CAAC;IACjD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,eAAe,GAAG,gBAAgB,CAAC,OAAO,CAAC;QACjD,MAAM,CAAC,eAAe,EAAE,8BAA8B,CAAC,CAAC;QAExD,IAAI,OAAO,EAAE,CAAC;YACZ,SAAS,UAAU,CAAC,EAAE,MAAM,EAAkC;gBAC5D,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;YACD,OAAO,OAAO,CACZ,kBAAkB,CAAC;gBACjB,UAAU,EAAE,UAAU;gBACtB,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE;oBACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,OAAO;oBACT,CAAC;oBAED,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;oBAC/B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;oBAC/B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;wBACvD,OAAO;oBACT,CAAC;oBAED,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CACnC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,CACpC,CAAC;oBACF,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;wBACzB,OAAO;oBACT,CAAC;oBAED,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;oBAE3D,WAAW,CAAC;wBACV,UAAU,EAAE,UAAU,CAAC,KAAK;wBAC5B,aAAa;wBACb,mBAAmB;qBACpB,CAAC,CAAC;oBACH,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAC/B,CAAC;aACF,CAAC,EACF,qBAAqB,CAAC;gBACpB,SAAS,EAAE,UAAU;gBACrB,OAAO,EAAE,eAAe;aACzB,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;AACrE,CAAC"}
1
+ {"version":3,"file":"use_drop_monitor.js","sourceRoot":"","sources":["../../../../src/components/table/reorder_rows/use_drop_monitor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EACL,qBAAqB,EACrB,OAAO,EACP,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,gBAAoC,EACpC,OAAgB;IAEhB,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,YAAY,EAAE,CAAC;IAC9C,MAAM,CAAC,EAAE,aAAa,CAAC,GAAG,oBAAoB,EAAE,CAAC;IACjD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,MAAM,eAAe,GAAG,gBAAgB,CAAC,OAAO,CAAC;QACjD,MAAM,CAAC,eAAe,EAAE,8BAA8B,CAAC,CAAC;QAExD,SAAS,UAAU,CAAC,EAAE,MAAM,EAAkC;YAC5D,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,OAAO,CACZ,kBAAkB,CAAC;YACjB,UAAU,EAAE,UAAU;YACtB,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE;gBACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO;gBACT,CAAC;gBAED,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;gBAC/B,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;gBAC/B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBACvD,OAAO;gBACT,CAAC;gBAED,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CACnC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,CACpC,CAAC;gBACF,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;oBACzB,OAAO;gBACT,CAAC;gBAED,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;gBAE3D,WAAW,CAAC;oBACV,UAAU,EAAE,UAAU,CAAC,KAAK;oBAC5B,aAAa;oBACb,mBAAmB;iBACpB,CAAC,CAAC;gBACH,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAC/B,CAAC;SACF,CAAC,EACF,qBAAqB,CAAC;YACpB,SAAS,EAAE,UAAU;YACrB,OAAO,EAAE,eAAe;SACzB,CAAC,CACH,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;AACrE,CAAC"}
@@ -17,7 +17,7 @@ const PanelPreferencesToolbarContent = styled.div `
17
17
  display: flex;
18
18
  flex-direction: row-reverse;
19
19
 
20
- & > button {
20
+ > button {
21
21
  padding: 0 0 0 9px;
22
22
  min-width: auto;
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../src/components/toolbar/Toolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,MAAM,EACN,YAAY,EACZ,YAAY,EACb,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,OAAO,CAAC;AAGnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOtD,MAAM,MAAM,sBAAsB,GAC9B,OAAO,GACP,OAAO,GACP,cAAc,GACd,cAAc,CAAC;AAEnB,UAAU,gBAAgB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YACf,SAAQ,gBAAgB,EACtB,IAAI,CAAC,gBAAgB,EAAE,UAAU,GAAG,UAAU,CAAC;IACjD;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;CACjD;AAED,MAAM,WAAW,gBACf,SAAQ,gBAAgB,EACtB,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,UAAU,CAAC;IAClE,OAAO,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAClC,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACvC;AAMD,MAAM,WAAW,uBACf,SAAQ,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC;IACzC,SAAS,EAAE,gBAAgB,CAAC;CAC7B;AAqBD,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,2CA+D1C;yBA/De,OAAO;;6BA0Jd,uBAAuB;;AAzFhC,iBAAS,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CAE3C"}
1
+ {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../src/components/toolbar/Toolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,MAAM,EACN,YAAY,EACZ,YAAY,EACb,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,OAAO,CAAC;AAGnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOtD,MAAM,MAAM,sBAAsB,GAC9B,OAAO,GACP,OAAO,GACP,cAAc,GACd,cAAc,CAAC;AAEnB,UAAU,gBAAgB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YACf,SAAQ,gBAAgB,EACtB,IAAI,CAAC,gBAAgB,EAAE,UAAU,GAAG,UAAU,CAAC;IACjD;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;CACjD;AAED,MAAM,WAAW,gBACf,SAAQ,gBAAgB,EACtB,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,UAAU,CAAC;IAClE,OAAO,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAClC,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACvC;AAMD,MAAM,WAAW,uBACf,SAAQ,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC;IACzC,SAAS,EAAE,gBAAgB,CAAC;CAC7B;AAqBD,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,2CAkE1C;yBAlEe,OAAO;;6BA6Jd,uBAAuB;;AAzFhC,iBAAS,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CAE3C"}
@@ -53,11 +53,12 @@ export function Toolbar(props) {
53
53
  }
54
54
  }
55
55
  const element = ref.current;
56
- if (element) {
57
- const observer = new ResizeObserver(update);
58
- observer.observe(element);
59
- return () => observer.unobserve(element);
56
+ if (!element) {
57
+ return;
60
58
  }
59
+ const observer = new ResizeObserver(update);
60
+ observer.observe(element);
61
+ return () => observer.unobserve(element);
61
62
  }, [vertical]);
62
63
  return (_jsx(ToolbarProvider, { value: contextValue, children: _jsx(ButtonGroup, { ref: ref, vertical: vertical, variant: "minimal", style: {
63
64
  flexWrap: 'wrap',
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.js","sourceRoot":"","sources":["../../../src/components/toolbar/Toolbar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Toolbar.js","sourceRoot":"","sources":["../../../src/components/toolbar/Toolbar.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAGzD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG3C,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AA0CxE,MAAM,MAAM,GAAG,8BAA8B,CAAC;AAE9C,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAA;KAC/B,OAAO,CAAC,IAAI;;aAEJ,MAAM,CAAC,UAAU;;;;;;KAMzB,OAAO,CAAC,GAAG;;;;;;CAMf,CAAC;AAEF,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB,EAAE,GACpE,KAAK,CAAC;IAER,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CAAC,CAAC;QACL,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,sBAAsB;KACvB,CAAC,EACF,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,sBAAsB,CAAC,CACrD,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEzC,yDAAyD;IACzD,2FAA2F;IAC3F,uFAAuF;IACvF,gCAAgC;IAChC,eAAe,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,SAAS,MAAM;YACb,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC;YAClD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO;YACT,CAAC;YACD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;YACpC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;YACpD,MAAM,YAAY,GAAG,WAAW,CAAC,qBAAqB,EAAE,CAAC;YACzD,MAAM,KAAK,GAAG,GAAG,YAAY,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC;YACvD,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;gBACtC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;YAClC,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;QAC5C,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1B,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,CACL,KAAC,eAAe,IAAC,KAAK,EAAE,YAAY,YAClC,KAAC,WAAW,IACV,GAAG,EAAE,GAAG,EAIR,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAC,SAAS,EACjB,KAAK,EAAE;gBACL,QAAQ,EAAE,MAAM;gBAChB,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;aAC3C,YAEA,QAAQ,IARJ,MAAM,CAAC,QAAQ,CAAC,CAST,GACE,CACnB,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAuB;IAC1C,OAAO,KAAC,mBAAmB,OAAK,KAAK,EAAE,SAAS,EAAE,KAAK,GAAI,CAAC;AAC9D,CAAC;AAED,SAAS,mBAAmB,CAAC,KAA+B;IAC1D,MAAM,EACJ,MAAM,GAAG,KAAK,EACd,IAAI,EACJ,OAAO,EACP,OAAO,EACP,YAAY,EACZ,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,YAAY,EACtB,SAAS,EACT,GAAG,KAAK,EACT,GAAG,KAAK,CAAC;IAEV,MAAM,EACJ,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,eAAe,EACzB,QAAQ,GACT,GAAG,iBAAiB,EAAE,CAAC;IACxB,MAAM,MAAM,GAAG,UAAU,IAAI,aAAa,CAAC;IAC3C,MAAM,QAAQ,GAAG,YAAY,IAAI,eAAe,CAAC;IAEjD,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAE/C,OAAO,CACL,KAAC,aAAa,IACZ,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAC,QAAQ,EACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;YACL,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE,aAAa;SACrB,EACD,IAAI,EACF,4BACG,SAAS,CAAC,CAAC,CAAC,CACX,8BAEE,cAAK,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,YAAG,cAAc,GAAO,EAC3D,KAAC,IAAI,IACH,IAAI,EAAC,aAAa,EAClB,IAAI,EAAE,CAAC,EACP,KAAK,EAAE;4BACL,SAAS,EAAE,eAAe;4BAC1B,QAAQ,EAAE,UAAU;4BACpB,MAAM,EAAE,CAAC;4BACT,KAAK,EAAE,CAAC;4BACR,KAAK,EAAE,CAAC;4BACR,MAAM,EAAE,CAAC;yBACV,GACD,IACD,CACJ,CAAC,CAAC,CAAC,CACF,cAAc,CACf,GACA,EAEL,OAAO,EAAE,OAAO,EAChB,YAAY,EACV,CAAC,OAAO;YACN,CAAC,CAAC,SAAS;YACX,CAAC,CAAC;gBACE,OAAO,EAAE,OAAO;gBAChB,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;gBACxC,MAAM;gBACN,OAAO,EAAE,IAAI;gBACb,eAAe,EAAE,OAAO;gBACxB,GAAG,YAAY;aAChB,KAEH,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC;AAE3B,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;KACjC,OAAO,CAAC,IAAI;aACJ,MAAM,CAAC,UAAU;;CAE7B,CAAC;AAEF,OAAO,CAAC,WAAW,GAAG,SAAS,kBAAkB,CAC/C,KAA8B;IAE9B,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC;IACtC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,sBAAsB,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAE3E,OAAO,CACL,KAAC,cAAc,IACb,OAAO,QACP,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,EACpD,eAAe,EAAE,sBAAsB,EACvC,WAAW,EAAE,sBAAsB,KAAK,OAAO,EAC/C,eAAe,EAAE,CAAC,EAClB,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,CAAC,CACvD,kBAAU,WAAW,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,YAChD,KAAC,mBAAmB,IAAC,SAAS,WAAK,SAAS,GAAI,GAC3C,CACR,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,eAAe,CAAC,KAGxB;IACC,OAAO,CACL,KAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,CAAC,KAAK,YACxC,KAAK,CAAC,QAAQ,GACS,CAC3B,CAAC;AACJ,CAAC"}
@@ -36,7 +36,7 @@ const SubTitleItem = styled.div `
36
36
  padding-left: 15px;
37
37
  box-sizing: border-box;
38
38
 
39
- &::before {
39
+ ::before {
40
40
  position: absolute;
41
41
  top: ${shortcutBoxSize / 2}rem;
42
42
  left: 0;
@@ -47,7 +47,7 @@ const SubTitleItem = styled.div `
47
47
  border-bottom: 1px solid;
48
48
  }
49
49
 
50
- &::after {
50
+ ::after {
51
51
  position: absolute;
52
52
  top: 0;
53
53
  bottom: 0;
@@ -58,7 +58,7 @@ const SubTitleItem = styled.div `
58
58
  border-left: 1px solid;
59
59
  }
60
60
 
61
- &:last-child::after {
61
+ :last-child::after {
62
62
  height: ${shortcutBoxSize / 2}rem;
63
63
  }
64
64
  `;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-science",
3
- "version": "19.2.0",
3
+ "version": "19.3.0",
4
4
  "description": "React components to build scientific applications UI",
5
5
  "type": "module",
6
6
  "exports": {
@@ -56,58 +56,59 @@
56
56
  "react-dom": ">=18.0.0"
57
57
  },
58
58
  "dependencies": {
59
- "@atlaskit/pragmatic-drag-and-drop": "^1.7.4",
60
- "@atlaskit/pragmatic-drag-and-drop-auto-scroll": "^2.1.1",
59
+ "@atlaskit/pragmatic-drag-and-drop": "^1.7.7",
60
+ "@atlaskit/pragmatic-drag-and-drop-auto-scroll": "^2.1.2",
61
61
  "@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.1.0",
62
62
  "@emotion/styled": "^11.14.1",
63
63
  "@radix-ui/react-use-controllable-state": "^1.2.2",
64
- "@tanstack/react-form": "^1.19.2",
64
+ "@tanstack/react-form": "^1.23.6",
65
65
  "@tanstack/react-table": "^8.21.3",
66
66
  "@tanstack/react-virtual": "^3.13.12",
67
67
  "d3-scale-chromatic": "^3.1.0",
68
- "react-d3-utils": "^3.1.1",
68
+ "react-d3-utils": "^3.1.2",
69
69
  "react-dropzone": "^14.3.8",
70
70
  "react-full-screen": "^1.1.1",
71
71
  "react-icons": "^5.5.0",
72
- "react-inspector": "^6.0.2",
72
+ "react-inspector": "^9.0.0",
73
73
  "tinycolor2": "^1.6.0",
74
- "ts-pattern": "^5.7.1",
75
- "zod": "^4.0.17"
74
+ "ts-pattern": "^5.8.0",
75
+ "zod": "^4.1.12"
76
76
  },
77
77
  "devDependencies": {
78
78
  "@blueprintjs/core": "6.0.0",
79
79
  "@blueprintjs/icons": "6.0.0",
80
80
  "@blueprintjs/select": "6.0.0",
81
- "@floating-ui/react": "^0.27.13",
82
- "@playwright/experimental-ct-react": "^1.54.1",
83
- "@playwright/test": "^1.54.1",
84
- "@storybook/addon-docs": "^9.0.16",
85
- "@storybook/react-vite": "^9.0.16",
86
- "@tanstack/react-query": "^5.83.0",
81
+ "@floating-ui/react": "^0.27.16",
82
+ "@playwright/experimental-ct-react": "^1.56.0",
83
+ "@playwright/test": "^1.56.0",
84
+ "@storybook/addon-docs": "^9.1.10",
85
+ "@storybook/react-vite": "^9.1.10",
86
+ "@tanstack/react-query": "^5.90.2",
87
87
  "@types/babel__core": "^7.20.5",
88
88
  "@types/d3-scale-chromatic": "^3.1.0",
89
- "@types/node": "^24.0.13",
89
+ "@types/node": "^24.7.0",
90
90
  "@types/react": "^18.3.12",
91
91
  "@types/react-dom": "^18.3.1",
92
92
  "@types/tinycolor2": "^1.4.6",
93
- "@vitejs/plugin-react": "^4.6.0",
93
+ "@vitejs/plugin-react": "^5.0.4",
94
94
  "@vitest/coverage-v8": "^3.2.4",
95
+ "@zakodium/tsconfig": "^1.0.2",
95
96
  "biologic-converter": "^0.6.0",
96
97
  "cheminfo-font": "^1.13.1",
97
98
  "cheminfo-types": "^1.8.1",
98
- "cross-env": "^7.0.3",
99
- "eslint": "^9.31.0",
100
- "eslint-config-zakodium": "^16.0.0",
101
- "eslint-plugin-storybook": "^9.0.16",
102
- "fifo-logger": "^2.0.0",
99
+ "cross-env": "^10.1.0",
100
+ "eslint": "^9.37.0",
101
+ "eslint-config-zakodium": "^17.0.0",
102
+ "eslint-plugin-storybook": "^9.1.10",
103
+ "fifo-logger": "^2.0.1",
103
104
  "filelist-utils": "^1.11.3",
104
- "immer": "^10.1.1",
105
- "jcampconverter": "^11.0.3",
106
- "ml-gsd": "^13.0.1",
105
+ "immer": "^10.1.3",
106
+ "jcampconverter": "^11.1.0",
107
+ "ml-gsd": "^13.1.0",
107
108
  "ml-peak-shape-generator": "^4.2.0",
108
- "ml-signal-processing": "^2.0.0",
109
- "ml-spectra-processing": "^14.13.0",
110
- "ms-spectrum": "^3.9.0",
109
+ "ml-signal-processing": "^2.1.0",
110
+ "ml-spectra-processing": "^14.18.0",
111
+ "ms-spectrum": "^3.9.2",
111
112
  "netcdfjs": "^3.0.0",
112
113
  "postcss-styled-syntax": "^0.7.1",
113
114
  "prettier": "^3.6.2",
@@ -115,20 +116,20 @@
115
116
  "react-dom": "^18.3.1",
116
117
  "react-error-boundary": "^6.0.0",
117
118
  "react-kbs": "^2.1.1",
118
- "react-ocl": "^8.0.0",
119
- "react-plot": "^3.1.0",
119
+ "react-ocl": "^8.2.0",
120
+ "react-plot": "^3.1.1",
120
121
  "rimraf": "^6.0.1",
121
122
  "spc-parser": "^1.0.0",
122
- "storybook": "^9.0.16",
123
- "stylelint": "^16.21.1",
124
- "stylelint-config-standard": "^38.0.0",
125
- "typescript": "^5.8.3",
126
- "vite": "^7.0.4",
123
+ "storybook": "^9.1.10",
124
+ "stylelint": "^16.25.0",
125
+ "stylelint-config-standard": "^39.0.1",
126
+ "typescript": "^5.9.3",
127
+ "vite": "^7.1.9",
127
128
  "vitest": "^3.2.4",
128
129
  "wdf-parser": "^0.3.0"
129
130
  },
130
131
  "volta": {
131
- "node": "24.4.0"
132
+ "node": "24.9.0"
132
133
  },
133
134
  "overrides": {
134
135
  "storybook": "$storybook"
@@ -82,7 +82,7 @@ const AccordionItemHeader = styled.div`
82
82
  justify-content: space-between;
83
83
  padding-left: 12px;
84
84
 
85
- &:hover {
85
+ :hover {
86
86
  background: white
87
87
  linear-gradient(${Colors.LIGHT_GRAY4} 5%, ${Colors.LIGHT_GRAY2} 100%)
88
88
  repeat scroll 0 0;
@@ -1,5 +1,5 @@
1
1
  import type { CSSProperties } from 'react';
2
- import { useCallback, useEffect, useRef, useState } from 'react';
2
+ import { useCallback, useRef, useState } from 'react';
3
3
 
4
4
  import { debounce } from '../../utils/index.js';
5
5
  import { defaultColorPalette } from '../palette.js';
@@ -152,17 +152,19 @@ export function ColorPicker(props: ColorPickerProps) {
152
152
  style = {},
153
153
  } = props;
154
154
 
155
- const [state, setState] = useState(colorHelper.toState(color, 0));
156
-
157
155
  const debounceRef = useRef(
158
156
  debounce((fn: any, data: ChangeCallbackProps, event: Event) => {
159
157
  fn(data, event);
160
158
  }, 100),
161
159
  );
162
160
 
163
- useEffect(() => {
164
- setState((prevState) => colorHelper.toState(color, prevState.oldHue));
165
- }, [color]);
161
+ const [state, setState] = useState(() => colorHelper.toState(color, 0));
162
+
163
+ const [previousColor, setPreviousColor] = useState(color);
164
+ if (color !== previousColor) {
165
+ setPreviousColor(color);
166
+ setState(colorHelper.toState(color, 0));
167
+ }
166
168
 
167
169
  const handleChange = useCallback(
168
170
  (data: any, event: any) => {
@@ -1,6 +1,6 @@
1
1
  import { match } from 'ts-pattern';
2
2
 
3
- import { Logo } from './Logo.js';
3
+ import { DoiLogo } from './doi_logo.js';
4
4
  import { normalizeDOI } from './utils.js';
5
5
 
6
6
  type DOISize = 'small' | 'medium' | 'large';
@@ -21,7 +21,7 @@ export function DOI(props: DOIProps) {
21
21
  target="_blank"
22
22
  rel="noreferrer"
23
23
  >
24
- <Logo size={getDOISize(size)} />
24
+ <DoiLogo size={getDOISize(size)} />
25
25
  </a>
26
26
  );
27
27
  }
@@ -1,6 +1,6 @@
1
1
  import styled from '@emotion/styled';
2
2
 
3
- const Svg = styled.svg<{ size: string }>`
3
+ const DoiLogoSvg = styled.svg<{ size: string }>`
4
4
  display: inline-flex;
5
5
  ${(props) => {
6
6
  return `
@@ -10,15 +10,19 @@ const Svg = styled.svg<{ size: string }>`
10
10
  }}
11
11
  `;
12
12
 
13
- interface LogoProps {
13
+ interface DoiLogoProps {
14
14
  size: string;
15
15
  }
16
16
 
17
- export function Logo(props: LogoProps) {
17
+ export function DoiLogo(props: DoiLogoProps) {
18
18
  const { size } = props;
19
19
 
20
20
  return (
21
- <Svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 130 130" size={size}>
21
+ <DoiLogoSvg
22
+ xmlns="http://www.w3.org/2000/svg"
23
+ viewBox="0 0 130 130"
24
+ size={size}
25
+ >
22
26
  <circle fill="#fcb425" cx="65" cy="65" r="64" />
23
27
  <path
24
28
  fill="##231f20"
@@ -28,6 +32,6 @@ export function Logo(props: LogoProps) {
28
32
  fill="#fff"
29
33
  d="m 105.42764,25.617918 c -1.97184,0 -3.64919,0.69142 -5.03204,2.074271 -1.357247,1.357245 -2.035864,3.021779 -2.035864,4.993633 0,1.971835 0.678617,3.649193 2.035864,5.032034 1.38285,1.382861 3.0602,2.074281 5.03204,2.074281 1.99744,0 3.67479,-0.678627 5.03203,-2.035861 1.38285,-1.382861 2.07428,-3.073012 2.07428,-5.070454 0,-1.971854 -0.69143,-3.636388 -2.07428,-4.993633 -1.38285,-1.382851 -3.0602,-2.074271 -5.03203,-2.074271 z M 74.219383,45.507921 c -7.323992,0 -12.970625,2.283009 -16.939921,6.848949 -3.277876,3.782438 -4.916803,8.118252 -4.916803,13.008406 0,5.430481 1.626124,10.009834 4.878383,13.738236 3.943689,4.538918 9.475093,6.808622 16.59421,6.808622 7.093512,0 12.612122,-2.269704 16.555801,-6.808622 3.252259,-3.728402 4.878393,-8.1993 4.878393,-13.413648 0,-5.160323 -1.638938,-9.604602 -4.916803,-13.332994 -4.020509,-4.56594 -9.398263,-6.848949 -16.13326,-6.848949 z m 24.908603,1.386686 0,37.634676 12.599304,0 0,-37.634676 -12.599304,0 z M 73.835252,56.975981 c 2.304752,0 4.263793,0.852337 5.877124,2.554426 1.638928,1.675076 2.458402,3.727881 2.458402,6.159457 0,2.458578 -0.806671,4.538022 -2.419992,6.240111 -1.613331,1.675086 -3.585175,2.514099 -5.915534,2.514099 -2.612051,0 -4.737546,-1.027366 -6.376474,-3.080682 -1.331637,-1.648053 -1.997451,-3.539154 -1.997451,-5.673528 0,-2.107362 0.665814,-3.985138 1.997451,-5.633201 1.638928,-2.053316 3.764423,-3.080682 6.376474,-3.080682 z"
30
34
  />
31
- </Svg>
35
+ </DoiLogoSvg>
32
36
  );
33
37
  }
@@ -1,14 +1,24 @@
1
1
  import type { CheckboxProps as BPCheckboxProps } from '@blueprintjs/core';
2
- import { Checkbox as BPCheckbox, FormGroup } from '@blueprintjs/core';
2
+ import { Checkbox as BPCheckbox } from '@blueprintjs/core';
3
+ import styled from '@emotion/styled';
3
4
  import type { ChangeEvent } from 'react';
4
5
 
5
6
  import { useFieldContext } from '../../context/use_ts_form.js';
6
7
  import { getIntent } from '../../utils/use_intent.js';
8
+ import { FormGroup } from '../input_groups/form_group.js';
7
9
 
8
- type CheckboxProps = Omit<BPCheckboxProps, 'defaultChecked' | 'name'>;
10
+ type CheckboxProps = Omit<BPCheckboxProps, 'defaultChecked' | 'name'> & {
11
+ helpText?: string;
12
+ };
13
+
14
+ // Keep the margin top for space between inputs. But remove the margin bottom for helperText
15
+ const StyledCheckbox = styled(BPCheckbox)<CheckboxProps>`
16
+ margin-bottom: 0 !important;
17
+ width: fit-content;
18
+ `;
9
19
 
10
20
  export function Checkbox(props: CheckboxProps) {
11
- const { ...rest } = props;
21
+ const { helpText, label } = props;
12
22
  const field = useFieldContext<boolean>();
13
23
  const error = field
14
24
  .getMeta()
@@ -23,13 +33,20 @@ export function Checkbox(props: CheckboxProps) {
23
33
  }
24
34
 
25
35
  return (
26
- <FormGroup intent={intent} helperText={error}>
27
- <BPCheckbox
28
- {...rest}
36
+ <FormGroup
37
+ name={field.name}
38
+ intent={intent}
39
+ error={error}
40
+ fullWidth
41
+ helpText={helpText}
42
+ >
43
+ <StyledCheckbox
44
+ label={label}
29
45
  name={field.name}
30
46
  value={String(field.state.value)}
31
47
  onChange={onChange}
32
48
  onBlur={field.handleBlur}
49
+ defaultChecked={field.state.value}
33
50
  />
34
51
  </FormGroup>
35
52
  );
@@ -1,17 +1,25 @@
1
+ import { InputGroup } from '@blueprintjs/core';
1
2
  import type { ChangeEvent } from 'react';
2
3
 
3
4
  import { useFieldContext } from '../../context/use_ts_form.js';
4
- import { Input as FormGroupInput } from '../input_groups/input.js';
5
+ import type { FormGroupInputProps } from '../input_groups/form_group.js';
6
+ import { FormGroup } from '../input_groups/form_group.js';
5
7
 
6
- interface InputProps {
7
- label?: string;
8
- inline?: boolean;
9
- required?: boolean;
10
- placeholder?: string;
8
+ interface InputProps extends FormGroupInputProps {
9
+ type?: string;
11
10
  }
12
11
 
13
12
  export function Input(props: InputProps) {
14
- const { label, required, inline, placeholder } = props;
13
+ const {
14
+ label,
15
+ required,
16
+ placeholder,
17
+ type = 'text',
18
+ helpText,
19
+ layout,
20
+ fullWidth,
21
+ } = props;
22
+
15
23
  const field = useFieldContext<string>();
16
24
  const error = field
17
25
  .getMeta()
@@ -23,15 +31,27 @@ export function Input(props: InputProps) {
23
31
  }
24
32
 
25
33
  return (
26
- <FormGroupInput
34
+ <FormGroup
35
+ name={field.name}
36
+ label={label}
37
+ intent={error ? 'danger' : 'none'}
27
38
  required={required}
28
39
  error={error}
29
- formGroupProps={{ label, inline }}
30
- value={field.state.value}
31
- onChange={onChange}
32
- name={field.name}
33
- placeholder={placeholder}
34
- onBlur={field.handleBlur}
35
- />
40
+ helpText={helpText}
41
+ layout={layout}
42
+ fullWidth={fullWidth}
43
+ >
44
+ <InputGroup
45
+ id={field.name}
46
+ name={field.name}
47
+ required={required}
48
+ type={type}
49
+ onChange={onChange}
50
+ onBlur={field.handleBlur}
51
+ intent={error ? 'danger' : 'none'}
52
+ value={field.state.value}
53
+ placeholder={placeholder}
54
+ />
55
+ </FormGroup>
36
56
  );
37
57
  }
@@ -1,20 +1,30 @@
1
- import type { NumericInputProps as BPNumericInputProps } from '@blueprintjs/core';
2
- import { FormGroup, NumericInput as BPNumericInput } from '@blueprintjs/core';
1
+ import { NumericInput as BPNumericInput } from '@blueprintjs/core';
3
2
 
4
3
  import { useFieldContext } from '../../context/use_ts_form.js';
5
- import { useFieldId } from '../../utils/use_field_id.js';
6
4
  import { getIntent } from '../../utils/use_intent.js';
5
+ import type { FormGroupInputProps } from '../input_groups/form_group.js';
6
+ import { FormGroup } from '../input_groups/form_group.js';
7
7
 
8
- interface NumericInputProps
9
- extends Omit<BPNumericInputProps, 'defaultValue' | 'name'> {
10
- label?: string;
11
- required?: boolean;
8
+ interface NumericInputProps extends FormGroupInputProps {
9
+ step?: number;
10
+ min?: number;
11
+ max?: number;
12
12
  }
13
13
 
14
14
  export function NumericInput(props: NumericInputProps) {
15
- const { label, required, ...rest } = props;
15
+ const {
16
+ label,
17
+ required,
18
+ helpText,
19
+ placeholder,
20
+ step,
21
+ min,
22
+ max,
23
+ layout,
24
+ fullWidth,
25
+ } = props;
26
+
16
27
  const field = useFieldContext<string>();
17
- const id = useFieldId(field.name);
18
28
  const error = field
19
29
  .getMeta()
20
30
  .errors.map((e) => e.message)
@@ -28,21 +38,26 @@ export function NumericInput(props: NumericInputProps) {
28
38
 
29
39
  return (
30
40
  <FormGroup
31
- helperText={error}
41
+ name={field.name}
32
42
  label={label}
33
- labelFor={id}
34
43
  intent={intent}
35
- labelInfo={label && required && <span style={{ color: 'red' }}>*</span>}
44
+ required={required}
45
+ helpText={helpText}
46
+ layout={layout}
47
+ error={error}
48
+ fullWidth={fullWidth}
36
49
  >
37
50
  <BPNumericInput
38
- {...rest}
51
+ id={field.name}
39
52
  name={field.name}
53
+ stepSize={step}
54
+ min={min}
55
+ max={max}
40
56
  value={field.state.value ?? ''}
41
57
  onValueChange={onChange}
42
58
  intent={intent}
59
+ placeholder={placeholder}
43
60
  required={required}
44
- id={id}
45
- onBlur={field.handleBlur}
46
61
  />
47
62
  </FormGroup>
48
63
  );