@rubin-epo/epo-widget-lib 1.0.8 → 1.1.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 (127) hide show
  1. package/dist/ColorTool.d.ts +2 -2
  2. package/dist/FilterTool.d.ts +2 -2
  3. package/dist/IsochronePlot.js +15 -16
  4. package/dist/SupernovaThreeVector.cjs +1 -1
  5. package/dist/SupernovaThreeVector.js +89 -84
  6. package/dist/ViewIndicator.cjs +1 -0
  7. package/dist/ViewIndicator.d.ts +3 -0
  8. package/dist/ViewIndicator.js +143 -0
  9. package/dist/atomic/Blinker/Controls/Controls.cjs +1 -1
  10. package/dist/atomic/Blinker/Controls/Controls.js +24 -25
  11. package/dist/charts/Bars/index.cjs +1 -1
  12. package/dist/charts/Bars/index.js +19 -21
  13. package/dist/charts/Base/index.cjs +1 -1
  14. package/dist/charts/Base/index.js +22 -23
  15. package/dist/charts/Base/styles.d.ts +1 -1
  16. package/dist/charts/ClippingContainer/index.cjs +1 -1
  17. package/dist/charts/ClippingContainer/index.js +9 -10
  18. package/dist/charts/ForeignObject/index.cjs +1 -1
  19. package/dist/charts/ForeignObject/index.js +8 -9
  20. package/dist/charts/Guidelines/index.cjs +1 -1
  21. package/dist/charts/Guidelines/index.js +11 -13
  22. package/dist/charts/PathFromPoints/index.js +1 -2
  23. package/dist/charts/Points/ErrorBar.cjs +1 -1
  24. package/dist/charts/Points/ErrorBar.js +9 -10
  25. package/dist/charts/Points/index.cjs +1 -1
  26. package/dist/charts/Points/index.js +30 -31
  27. package/dist/charts/Readout/index.cjs +1 -1
  28. package/dist/charts/Readout/index.js +24 -17
  29. package/dist/charts/ScatterPlot/index.cjs +1 -1
  30. package/dist/charts/ScatterPlot/index.js +79 -77
  31. package/dist/charts/Tooltip/index.cjs +1 -1
  32. package/dist/charts/Tooltip/index.js +14 -15
  33. package/dist/charts/Viewport/index.cjs +1 -1
  34. package/dist/charts/Viewport/index.js +13 -14
  35. package/dist/charts/XAxis/index.cjs +1 -1
  36. package/dist/charts/XAxis/index.js +22 -24
  37. package/dist/charts/YAxis/index.cjs +1 -1
  38. package/dist/charts/YAxis/index.js +17 -18
  39. package/dist/charts/canvas/Points/index.cjs +1 -1
  40. package/dist/charts/canvas/Points/index.js +27 -29
  41. package/dist/charts/defaults.cjs +1 -1
  42. package/dist/charts/defaults.js +13 -13
  43. package/dist/charts/styles.d.ts +6 -6
  44. package/dist/layout/Controls/index.d.ts +1 -1
  45. package/dist/lib/reimg.cjs +1 -1
  46. package/dist/lib/reimg.js +19 -19
  47. package/dist/lib/utils.cjs +1 -1
  48. package/dist/lib/utils.js +11 -15
  49. package/dist/widgets/CameraFilter/styles.d.ts +5 -5
  50. package/dist/widgets/ColorTool/Actions/Export/index.cjs +1 -1
  51. package/dist/widgets/ColorTool/Actions/Export/index.js +17 -18
  52. package/dist/widgets/ColorTool/Actions/index.cjs +1 -1
  53. package/dist/widgets/ColorTool/Actions/index.d.ts +1 -1
  54. package/dist/widgets/ColorTool/Actions/index.js +21 -22
  55. package/dist/widgets/ColorTool/FilterControls/FilterControls.cjs +1 -1
  56. package/dist/widgets/ColorTool/FilterControls/FilterControls.d.ts +1 -1
  57. package/dist/widgets/ColorTool/FilterControls/FilterControls.js +32 -33
  58. package/dist/widgets/ColorTool/FilterControls/styles.d.ts +1 -1
  59. package/dist/widgets/ColorTool/ImageComposite/ImageComposite.cjs +1 -1
  60. package/dist/widgets/ColorTool/ImageComposite/ImageComposite.d.ts +1 -1
  61. package/dist/widgets/ColorTool/ImageComposite/ImageComposite.js +22 -23
  62. package/dist/widgets/ColorTool/__mocks__/index.d.ts +15 -0
  63. package/dist/widgets/ColorTool/hooks/useFilteredImages.cjs +1 -1
  64. package/dist/widgets/ColorTool/hooks/useFilteredImages.d.ts +1 -1
  65. package/dist/widgets/ColorTool/hooks/useFilteredImages.js +9 -10
  66. package/dist/widgets/ColorTool/index.d.ts +46 -1
  67. package/dist/widgets/ColorTool/lib/server.d.ts +1 -1
  68. package/dist/widgets/ColorTool/lib/utils.d.ts +1 -1
  69. package/dist/widgets/FilterTool/index.d.ts +12 -1
  70. package/dist/widgets/FilterTool/styles.d.ts +6 -6
  71. package/dist/widgets/IsochronePlot/A11Y/CurveFit.cjs +1 -1
  72. package/dist/widgets/IsochronePlot/A11Y/CurveFit.js +22 -23
  73. package/dist/widgets/IsochronePlot/Controls/index.cjs +1 -1
  74. package/dist/widgets/IsochronePlot/Controls/index.js +22 -23
  75. package/dist/widgets/IsochronePlot/defaults.cjs +1 -1
  76. package/dist/widgets/IsochronePlot/defaults.js +2 -2
  77. package/dist/widgets/LightCurvePlot/Plot/index.cjs +1 -1
  78. package/dist/widgets/LightCurvePlot/Plot/index.js +28 -29
  79. package/dist/widgets/LightCurvePlot/PlotWithCurve/A11Y/LightCurveLabel/index.cjs +1 -1
  80. package/dist/widgets/LightCurvePlot/PlotWithCurve/A11Y/LightCurveLabel/index.js +20 -21
  81. package/dist/widgets/LightCurvePlot/PlotWithCurve/DM15Display/index.cjs +1 -1
  82. package/dist/widgets/LightCurvePlot/PlotWithCurve/DM15Display/index.js +11 -12
  83. package/dist/widgets/LightCurvePlot/PlotWithCurve/MagnitudeSlider/index.cjs +1 -1
  84. package/dist/widgets/LightCurvePlot/PlotWithCurve/MagnitudeSlider/index.js +20 -21
  85. package/dist/widgets/LightCurvePlot/PlotWithCurve/styles.js +2 -2
  86. package/dist/widgets/LightCurvePlot/defaults.cjs +1 -1
  87. package/dist/widgets/LightCurvePlot/defaults.js +2 -2
  88. package/dist/widgets/SourceSelector/SourceMap/index.cjs +1 -1
  89. package/dist/widgets/SourceSelector/SourceMap/index.js +12 -13
  90. package/dist/widgets/SourceSelector/SourceMap/styles.d.ts +2 -2
  91. package/dist/widgets/SourceSelector/SourceSelector.cjs +1 -1
  92. package/dist/widgets/SourceSelector/SourceSelector.js +39 -44
  93. package/dist/widgets/SupernovaThreeVector/Histogram/index.cjs +1 -1
  94. package/dist/widgets/SupernovaThreeVector/Histogram/index.js +36 -36
  95. package/dist/widgets/SupernovaThreeVector/Histogram/styles.d.ts +1 -1
  96. package/dist/widgets/SupernovaThreeVector/LiveLabel/index.cjs +1 -1
  97. package/dist/widgets/SupernovaThreeVector/LiveLabel/index.js +16 -17
  98. package/dist/widgets/SupernovaThreeVector/Skymap/index.cjs +1 -1
  99. package/dist/widgets/SupernovaThreeVector/Skymap/index.js +63 -58
  100. package/dist/widgets/SupernovaThreeVector/Skymap/styles.d.ts +7 -7
  101. package/dist/widgets/SupernovaThreeVector/styles.cjs +13 -19
  102. package/dist/widgets/SupernovaThreeVector/styles.js +21 -31
  103. package/dist/widgets/ViewIndicator/index.d.ts +13 -0
  104. package/dist/widgets/ViewIndicator/styles.cjs +52 -0
  105. package/dist/widgets/ViewIndicator/styles.d.ts +4402 -0
  106. package/dist/widgets/ViewIndicator/styles.js +67 -0
  107. package/package.json +65 -5
  108. package/dist/CameraFilter.cjs +0 -1
  109. package/dist/CameraFilter.d.ts +0 -3
  110. package/dist/CameraFilter.js +0 -102
  111. package/dist/Charts.cjs +0 -1
  112. package/dist/Charts.d.ts +0 -1
  113. package/dist/Charts.js +0 -24
  114. package/dist/widgets/CameraFilter/CondensedFilterRanges/CondensedFilterRanges.cjs +0 -1
  115. package/dist/widgets/CameraFilter/CondensedFilterRanges/CondensedFilterRanges.js +0 -62
  116. package/dist/widgets/CameraFilter/SpectrumDisplay/ColorLabels/ColorLabels.cjs +0 -1
  117. package/dist/widgets/CameraFilter/SpectrumDisplay/ColorLabels/ColorLabels.js +0 -100
  118. package/dist/widgets/CameraFilter/SpectrumDisplay/SpectrumDisplay.cjs +0 -1
  119. package/dist/widgets/CameraFilter/SpectrumDisplay/SpectrumDisplay.js +0 -98
  120. package/dist/widgets/CameraFilter/SpectrumDisplay/SpectrumLabels/SpectrumLabels.cjs +0 -1
  121. package/dist/widgets/CameraFilter/SpectrumDisplay/SpectrumLabels/SpectrumLabels.js +0 -59
  122. package/dist/widgets/CameraFilter/data.cjs +0 -1
  123. package/dist/widgets/CameraFilter/data.js +0 -84
  124. package/dist/widgets/CameraFilter/styles.cjs +0 -105
  125. package/dist/widgets/CameraFilter/styles.js +0 -128
  126. package/dist/widgets/ColorTool/ColorTool.d.ts +0 -46
  127. package/dist/widgets/FilterTool/FilterTool.d.ts +0 -12
@@ -0,0 +1,67 @@
1
+ "use client";
2
+ import o from "styled-components";
3
+ const e = o.div`
4
+ --size-svg-inner: calc(var(--size-container) * 0.65);
5
+
6
+ aspect-ratio: 1;
7
+ background-color: #313333;
8
+ block-size: var(--size-container);
9
+ border-radius: calc(var(--size-container) / 2);
10
+ color: var(--color-font-invert);
11
+ display: flex;
12
+ align-items: center;
13
+ justify-content: center;
14
+ position: relative;
15
+ user-select: none;
16
+ `, i = o.svg`
17
+ aspect-ratio: 1;
18
+ overflow: visible;
19
+ width: calc(var(--size-container) * 0.65);
20
+ `, t = o.div`
21
+ font-size: calc(calc(var(--size-container) - var(--size-svg-inner)) / 2);
22
+ font-weight: bold;
23
+ line-height: 1;
24
+ position: absolute;
25
+ top: 0px;
26
+ `, n = o.path`
27
+ fill: none;
28
+ stroke: currentColor;
29
+ stroke-width: 3;
30
+ `, c = o.path`
31
+ fill: none;
32
+ stroke: currentColor;
33
+ stroke-width: 2;
34
+ `;
35
+ o.path`
36
+ fill: none;
37
+ stroke: currentColor;
38
+ stroke-width: 2;
39
+ opacity: 0.85;
40
+ `;
41
+ const l = o.g`
42
+ --color-fill-primary: var(--color-rubin-yellow-200);
43
+ --color-fill-secondary: #eba85b;
44
+ fill: var(--color-fill-primary);
45
+ fill: color-mix(
46
+ in hsl,
47
+ var(--color-fill-primary) var(--percent-mix-primary),
48
+ var(--color-fill-secondary) var(--percent-mix-secondary)
49
+ );
50
+ `, a = o.path`
51
+ opacity: 0.8;
52
+ `, s = o.path`
53
+ opacity: 0.3;
54
+ `, p = o.path`
55
+ opacity: 0.5;
56
+ `;
57
+ export {
58
+ e as Container,
59
+ c as Meridian,
60
+ t as NorthDirection,
61
+ n as Outline,
62
+ a as Plane,
63
+ i as SVG,
64
+ s as SideEdges,
65
+ p as TopEdges,
66
+ l as ViewCone
67
+ };
package/package.json CHANGED
@@ -1,18 +1,35 @@
1
1
  {
2
2
  "name": "@rubin-epo/epo-widget-lib",
3
- "version": "1.0.8",
3
+ "version": "1.1.0",
4
4
  "description": "Rubin Observatory Education & Public Outreach team React scientific and educational widgets.",
5
5
  "author": "Rubin EPO",
6
6
  "license": "MIT",
7
7
  "homepage": "https://lsst-epo.github.io/epo-react-lib",
8
8
  "repository": {
9
9
  "type": "git",
10
- "url": "https://github.com/lsst-epo/epo-react-lib"
10
+ "url": "git+https://github.com/lsst-epo/epo-react-lib.git"
11
+ },
12
+ "publishConfig": {
13
+ "access": "public",
14
+ "registry": "https://registry.npmjs.org/"
11
15
  },
12
16
  "supportedLocales": [
13
17
  "en",
14
18
  "es"
15
19
  ],
20
+ "scripts": {
21
+ "dev": "vite",
22
+ "build": "tsc && vite build",
23
+ "fix-js": "prettier --write \"**/*.{js,jsx}\" && eslint -c .eslintrc.js \"**/*.{js,jsx,ts,tsx}\" --fix",
24
+ "lint-js": "prettier --check \"**/*.{js,jsx}\" & eslint -c .eslintrc.js \"**/*.{js,jsx,ts,tsx}\"",
25
+ "storybook": "storybook dev -p 6007",
26
+ "build-storybook": "storybook build",
27
+ "build-storybook:production": "yarn build-storybook -o ../../storybook-static/epo-widget-lib",
28
+ "test": "jest --max-workers=2",
29
+ "test:generate-output": "yarn test --json --outputFile=.jest-test-results.json || true",
30
+ "prepublishOnly": "yarn build",
31
+ "release": "semantic-release -e semantic-release-monorepo --debug"
32
+ },
16
33
  "files": [
17
34
  "README.md",
18
35
  "dist"
@@ -26,9 +43,52 @@
26
43
  },
27
44
  "./localeStrings": "./dist/localeStrings"
28
45
  },
29
- "publishConfig": {
30
- "access": "public",
31
- "registry": "https://registry.npmjs.org/"
46
+ "devDependencies": {
47
+ "@babel/core": "^7.20.12",
48
+ "@rubin-epo/eslint-config-react": "^1.0.0-beta",
49
+ "@semantic-release/github": "^10.1.7",
50
+ "@semantic-release/npm": "^12.0.1",
51
+ "@semantic-release/release-notes-generator": "^14.0.1",
52
+ "@storybook/addon-a11y": "^7.6.20",
53
+ "@storybook/addon-actions": "7.6.20",
54
+ "@storybook/addon-essentials": "7.6.20",
55
+ "@storybook/addon-interactions": "7.6.20",
56
+ "@storybook/addon-jest": "7.6.20",
57
+ "@storybook/addon-links": "7.6.20",
58
+ "@storybook/cli": "7.6.20",
59
+ "@storybook/manager-api": "7.6.20",
60
+ "@storybook/react": "7.6.20",
61
+ "@storybook/react-vite": "7.6.20",
62
+ "@storybook/testing-library": "^0.2.2",
63
+ "@storybook/theming": "7.6.20",
64
+ "@testing-library/jest-dom": "^5.16.5",
65
+ "@testing-library/react": "^13.4.0",
66
+ "@testing-library/user-event": "^14.4.3",
67
+ "@types/d3-array": "^3.2.1",
68
+ "@types/d3-geo": "^3.1.0",
69
+ "@types/react": "^18.0.26",
70
+ "@types/react-dom": "^18.0.9",
71
+ "@vitejs/plugin-react": "^4",
72
+ "babel-loader": "^8.3.0",
73
+ "eslint-plugin-storybook": "^0.8.0",
74
+ "glob": "^11.0.1",
75
+ "i18next": "23",
76
+ "i18next-browser-languagedetector": "^8.0.0",
77
+ "i18next-http-backend": "^2.5.2",
78
+ "jest": "^29.4.2",
79
+ "jest-canvas-mock": "^2.4.0",
80
+ "jest-environment-jsdom": "^29.4.2",
81
+ "react": "^18.2.0",
82
+ "react-dom": "^18.2.0",
83
+ "react-i18next": "13",
84
+ "rollup-plugin-banner2": "^1.2.2",
85
+ "semantic-release": "^24.1.0",
86
+ "semantic-release-monorepo": "^8.0.2",
87
+ "storybook-react-i18next": "2.0.10",
88
+ "ts-jest": "^29.0.5",
89
+ "typescript": "5",
90
+ "vite": "^5.4.3",
91
+ "vite-plugin-dts": "^3.9.1"
32
92
  },
33
93
  "peerDependencies": {
34
94
  "i18next": "^22.0.0 || ^23.0.0",
@@ -1 +0,0 @@
1
- "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),v=require("react"),q=require("@rubin-epo/epo-react-lib/SelectListbox"),y=require("@rubin-epo/epo-react-lib/styles"),S=require("react-i18next"),C=require("use-resize-observer"),r=require("./widgets/CameraFilter/data.cjs"),l=require("./widgets/CameraFilter/styles.cjs"),R=require("./widgets/CameraFilter/CondensedFilterRanges/CondensedFilterRanges.cjs"),L=require("./widgets/CameraFilter/SpectrumDisplay/SpectrumDisplay.cjs"),x=i=>i&&i.__esModule?i:{default:i},M=x(q),O=x(C),h=()=>{const{t:i}=S.useTranslation(),{ref:j,width:m=1}=O.default(),[c,p]=v.useState(null),{BREAK_TABLET:b}=y.tokens,s=m<parseInt(b),{[s?"condensed":"default"]:{min:o,max:g,range:n}}=r.rangeConfig,d=r.filters[0].range[0],u=r.filters[r.filters.length-1].range[1]-d,f=r.filters.filter(({band:t})=>t),F=[{value:"none",label:i("camera_filter.labels.option",{context:"none"})}].concat(f.map(({band:t})=>({value:t,label:i("camera_filter.labels.option",{band:t})}))),_=r.filters.find(({band:t})=>t===c);return e.jsx(l.FilterWrapper,{ratio:5/4,children:e.jsxs(l.FilterContainer,{ref:j,children:[e.jsx(l.FilterTitle,{children:i("camera_filter.title")}),s&&e.jsx(R.default,{filters:f,min:o,spectrumRange:n}),e.jsxs(l.FilterTable,{style:{"--filter-table-margin-inline-start":`${((d-o)/n*100).toFixed(2)}%`,"--filter-table-width":`${(u/n*100).toFixed(2)}%`},"data-testid":"expanded-filters",children:[e.jsx("colgroup",{children:r.filters.map(({range:t})=>e.jsx("col",{style:{width:`${(t[1]-t[0])/u*100}%`}},t.join("")))}),e.jsx(l.FilterNames,{children:e.jsx("tr",{children:r.filters.map(({band:t},a)=>e.jsx(l.FilterName,{id:`${t}-name`,style:{"--filter-name-border":t?"solid #b2b2b2":"none"},scope:"col","aria-hidden":!t,children:t},a))})}),!s&&e.jsx(l.FilterRanges,{children:e.jsx("tr",{children:r.filters.map(({band:t,range:a})=>e.jsx(l.FilterRange,{"aria-hidden":!t,children:t&&e.jsxs(e.Fragment,{children:[a.join("–"),e.jsx("br",{}),e.jsx(l.Wavelength,{children:"nm"})]})},a.join()))})})]}),e.jsx(L.default,{min:o,max:g,range:n,isCondensed:s,activeFilter:_}),e.jsxs(l.SelectContainer,{children:[e.jsx(l.SelectLabel,{id:"filterSelectLabel",children:i("camera_filter.labels.select")}),e.jsx(M.default,{options:F,value:c,onChangeCallback:t=>p(t),width:"100%",maxWidth:"100%",labelledById:"filterSelectLabel"})]})]})})};h.displayName="Widgets.CameraFilter";exports.default=h;
@@ -1,3 +0,0 @@
1
- export * from './widgets/CameraFilter/CameraFilter'
2
- import _default from './widgets/CameraFilter/CameraFilter'
3
- export default _default
@@ -1,102 +0,0 @@
1
- "use client";
2
- import { jsx as t, jsxs as o, Fragment as C } from "react/jsx-runtime";
3
- import { useState as v } from "react";
4
- import y from "@rubin-epo/epo-react-lib/SelectListbox";
5
- import { tokens as R } from "@rubin-epo/epo-react-lib/styles";
6
- import { useTranslation as S } from "react-i18next";
7
- import j from "use-resize-observer";
8
- import { filters as i, rangeConfig as B } from "./widgets/CameraFilter/data.js";
9
- import { FilterWrapper as L, FilterContainer as T, FilterTitle as _, FilterTable as w, FilterNames as O, FilterName as W, FilterRanges as $, FilterRange as A, Wavelength as M, SelectContainer as N, SelectLabel as k } from "./widgets/CameraFilter/styles.js";
10
- import E from "./widgets/CameraFilter/CondensedFilterRanges/CondensedFilterRanges.js";
11
- import I from "./widgets/CameraFilter/SpectrumDisplay/SpectrumDisplay.js";
12
- const z = () => {
13
- const { t: r } = S(), { ref: p, width: h = 1 } = j(), [c, F] = v(null), { BREAK_TABLET: b } = R, l = h < parseInt(b), {
14
- [l ? "condensed" : "default"]: { min: s, max: g, range: n }
15
- } = B, d = i[0].range[0], m = i[i.length - 1].range[1] - d, f = i.filter(({ band: e }) => e), u = [{
16
- value: "none",
17
- label: r("camera_filter.labels.option", { context: "none" })
18
- }].concat(
19
- f.map(({ band: e }) => ({
20
- value: e,
21
- label: r("camera_filter.labels.option", { band: e })
22
- }))
23
- ), x = i.find(({ band: e }) => e === c);
24
- return /* @__PURE__ */ t(L, { ratio: 5 / 4, children: /* @__PURE__ */ o(T, { ref: p, children: [
25
- /* @__PURE__ */ t(_, { children: r("camera_filter.title") }),
26
- l && /* @__PURE__ */ t(
27
- E,
28
- {
29
- filters: f,
30
- min: s,
31
- spectrumRange: n
32
- }
33
- ),
34
- /* @__PURE__ */ o(
35
- w,
36
- {
37
- style: {
38
- "--filter-table-margin-inline-start": `${((d - s) / n * 100).toFixed(2)}%`,
39
- "--filter-table-width": `${(m / n * 100).toFixed(2)}%`
40
- },
41
- "data-testid": "expanded-filters",
42
- children: [
43
- /* @__PURE__ */ t("colgroup", { children: i.map(({ range: e }) => /* @__PURE__ */ t(
44
- "col",
45
- {
46
- style: {
47
- width: `${(e[1] - e[0]) / m * 100}%`
48
- }
49
- },
50
- e.join("")
51
- )) }),
52
- /* @__PURE__ */ t(O, { children: /* @__PURE__ */ t("tr", { children: i.map(({ band: e }, a) => /* @__PURE__ */ t(
53
- W,
54
- {
55
- id: `${e}-name`,
56
- style: {
57
- "--filter-name-border": e ? "solid #b2b2b2" : "none"
58
- },
59
- scope: "col",
60
- "aria-hidden": !e,
61
- children: e
62
- },
63
- a
64
- )) }) }),
65
- !l && /* @__PURE__ */ t($, { children: /* @__PURE__ */ t("tr", { children: i.map(({ band: e, range: a }) => /* @__PURE__ */ t(A, { "aria-hidden": !e, children: e && /* @__PURE__ */ o(C, { children: [
66
- a.join("–"),
67
- /* @__PURE__ */ t("br", {}),
68
- /* @__PURE__ */ t(M, { children: "nm" })
69
- ] }) }, a.join())) }) })
70
- ]
71
- }
72
- ),
73
- /* @__PURE__ */ t(
74
- I,
75
- {
76
- min: s,
77
- max: g,
78
- range: n,
79
- isCondensed: l,
80
- activeFilter: x
81
- }
82
- ),
83
- /* @__PURE__ */ o(N, { children: [
84
- /* @__PURE__ */ t(k, { id: "filterSelectLabel", children: r("camera_filter.labels.select") }),
85
- /* @__PURE__ */ t(
86
- y,
87
- {
88
- options: u,
89
- value: c,
90
- onChangeCallback: (e) => F(e),
91
- width: "100%",
92
- maxWidth: "100%",
93
- labelledById: "filterSelectLabel"
94
- }
95
- )
96
- ] })
97
- ] }) });
98
- };
99
- z.displayName = "Widgets.CameraFilter";
100
- export {
101
- z as default
102
- };
package/dist/Charts.cjs DELETED
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./charts/Base/index.cjs"),i=require("./charts/XAxis/index.cjs"),t=require("./charts/YAxis/index.cjs"),r=require("./charts/Guidelines/index.cjs"),n=require("./charts/Points/index.cjs"),u=require("./charts/Tooltip/index.cjs"),d=require("./charts/ClippingContainer/index.cjs"),o=require("./charts/Bars/index.cjs"),s=require("./charts/Viewport/index.cjs"),a=require("./charts/ForeignObject/index.cjs"),l=require("./charts/ScatterPlot/index.cjs");exports.Base=e.default;exports.XAxis=i.default;exports.YAxis=t.default;exports.Guidelines=r.default;exports.Points=n.default;exports.Tooltip=u.default;exports.ClippingContainer=d.default;exports.Bars=o.default;exports.Viewport=s.default;exports.ForeignObject=a.default;exports.ScatterPlot=l.default;
package/dist/Charts.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from './charts/index'
package/dist/Charts.js DELETED
@@ -1,24 +0,0 @@
1
- import { default as o } from "./charts/Base/index.js";
2
- import { default as a } from "./charts/XAxis/index.js";
3
- import { default as s } from "./charts/YAxis/index.js";
4
- import { default as p } from "./charts/Guidelines/index.js";
5
- import { default as d } from "./charts/Points/index.js";
6
- import { default as i } from "./charts/Tooltip/index.js";
7
- import { default as n } from "./charts/ClippingContainer/index.js";
8
- import { default as g } from "./charts/Bars/index.js";
9
- import { default as B } from "./charts/Viewport/index.js";
10
- import { default as P } from "./charts/ForeignObject/index.js";
11
- import { default as j } from "./charts/ScatterPlot/index.js";
12
- export {
13
- g as Bars,
14
- o as Base,
15
- n as ClippingContainer,
16
- P as ForeignObject,
17
- p as Guidelines,
18
- d as Points,
19
- j as ScatterPlot,
20
- i as Tooltip,
21
- B as Viewport,
22
- a as XAxis,
23
- s as YAxis
24
- };
@@ -1 +0,0 @@
1
- "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),m=require("react"),a=require("../styles.cjs"),c=({filters:o,min:i,spectrumRange:l})=>{const s=m.useRef(null),d=s.current?Array.from(s.current.children):null;return e.jsxs(e.Fragment,{children:[e.jsx(a.CondensedRangeRow,{ref:s,"data-testid":"condensed-filters",children:o.map(({range:t,band:n})=>e.jsxs(a.CondensedRange,{"aria-labelledby":`${n}-name`,children:[t.join("–"),e.jsx("br",{}),"nm"]},n))}),d&&e.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMinYMin meet",viewBox:`${i} 0 ${l} 50`,role:"presentation","aria-hidden":"true",children:e.jsx("g",{role:"presentation",children:o.map(({range:t,band:n},u)=>{const x=d[u],{offsetLeft:f,offsetWidth:h,offsetParent:b}=x,{offsetWidth:g}=b,j=l/g,r=(t[0]+t[1])/2,p=(f+h/2)*j;return e.jsxs("g",{children:[e.jsx("line",{strokeWidth:1,stroke:"#b2b2b2",x1:r,x2:r,y1:"100%",y2:"75%",role:"presentation"}),e.jsx("line",{strokeWidth:1,stroke:"#b2b2b2",x1:r,x2:p+i,y1:"75%",y2:"0%",role:"presentation"})]},n)})})})]})};c.displayName="Widgets.CameraFilter.CondensedFilterRanges";const y=c;exports.default=y;
@@ -1,62 +0,0 @@
1
- "use client";
2
- import { jsxs as s, Fragment as y, jsx as e } from "react/jsx-runtime";
3
- import { useRef as R } from "react";
4
- import { CondensedRangeRow as w, CondensedRange as C } from "../styles.js";
5
- const c = ({
6
- filters: i,
7
- min: l,
8
- spectrumRange: d
9
- }) => {
10
- const r = R(null), a = r.current ? Array.from(r.current.children) : null;
11
- return /* @__PURE__ */ s(y, { children: [
12
- /* @__PURE__ */ e(w, { ref: r, "data-testid": "condensed-filters", children: i.map(({ range: t, band: n }) => /* @__PURE__ */ s(C, { "aria-labelledby": `${n}-name`, children: [
13
- t.join("–"),
14
- /* @__PURE__ */ e("br", {}),
15
- "nm"
16
- ] }, n)) }),
17
- a && /* @__PURE__ */ e(
18
- "svg",
19
- {
20
- xmlns: "http://www.w3.org/2000/svg",
21
- preserveAspectRatio: "xMinYMin meet",
22
- viewBox: `${l} 0 ${d} 50`,
23
- role: "presentation",
24
- "aria-hidden": "true",
25
- children: /* @__PURE__ */ e("g", { role: "presentation", children: i.map(({ range: t, band: n }, f) => {
26
- const m = a[f], { offsetLeft: p, offsetWidth: h, offsetParent: b } = m, { offsetWidth: g } = b, x = d / g, o = (t[0] + t[1]) / 2, u = (p + h / 2) * x;
27
- return /* @__PURE__ */ s("g", { children: [
28
- /* @__PURE__ */ e(
29
- "line",
30
- {
31
- strokeWidth: 1,
32
- stroke: "#b2b2b2",
33
- x1: o,
34
- x2: o,
35
- y1: "100%",
36
- y2: "75%",
37
- role: "presentation"
38
- }
39
- ),
40
- /* @__PURE__ */ e(
41
- "line",
42
- {
43
- strokeWidth: 1,
44
- stroke: "#b2b2b2",
45
- x1: o,
46
- x2: u + l,
47
- y1: "75%",
48
- y2: "0%",
49
- role: "presentation"
50
- }
51
- )
52
- ] }, n);
53
- }) })
54
- }
55
- )
56
- ] });
57
- };
58
- c.displayName = "Widgets.CameraFilter.CondensedFilterRanges";
59
- const v = c;
60
- export {
61
- v as default
62
- };
@@ -1 +0,0 @@
1
- "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),g=require("react-i18next"),M=require("../../../../lib/utils.cjs"),s=require("../../styles.cjs"),a=({colors:r,activeRange:x,isBandSelected:d,isCondensed:t})=>{const{t:u,i18n:{language:m}}=g.useTranslation(),n=t?350:r[0].range[0],h=(t?1e3:820)-n,b=Math.floor(h/(r.length-1));return e.jsx("g",{role:"list","data-testid":"color-labels",children:r.map(({name:c,range:l,color:j},y)=>{const o=n+b*y,p=d&&M.intersection(l,x)===null,i=(l[0]+l[1])/2;return e.jsxs("g",{children:[e.jsx("line",{strokeWidth:1,stroke:"#b2b2b2",x1:i,x2:i,y1:"100",y2:t?"105":"110",role:"presentation"}),e.jsx("line",{strokeWidth:1,stroke:"#b2b2b2",x1:i,x2:o,y1:t?"105":"110",y2:t?"145":"140",role:"presentation"}),e.jsx("circle",{cx:o,cy:t?"145":"140",r:t?15:10,fill:j,role:"presentation"}),e.jsxs("text",{x:o,dominantBaseline:"middle",textAnchor:"middle",y:"150",role:"listitem","aria-hidden":p,children:[e.jsx(s.ColorName,{x:o,dy:"1.25em",textAnchor:"middle",children:u(`filterTool.colors.${c}`).toLocaleLowerCase(m)}),e.jsx(s.ColorSpectrum,{x:o,dy:"1.25em",textAnchor:"middle",children:l.join("–")}),e.jsx(s.ColorSpectrumUnit,{x:o,dy:"1.25em",textAnchor:"middle",children:"nm"})]})]},c)})})};a.displayName="Widgets.CameraFilter.ColorLabels";const f=a;exports.default=f;
@@ -1,100 +0,0 @@
1
- "use client";
2
- import { jsx as o, jsxs as a } from "react/jsx-runtime";
3
- import { useTranslation as g } from "react-i18next";
4
- import { intersection as L } from "../../../../lib/utils.js";
5
- import { ColorName as k, ColorSpectrum as A, ColorSpectrumUnit as M } from "../../styles.js";
6
- const s = ({
7
- colors: r,
8
- activeRange: m,
9
- isBandSelected: d,
10
- isCondensed: t
11
- }) => {
12
- const {
13
- t: x,
14
- i18n: { language: h }
15
- } = g(), n = t ? 350 : r[0].range[0], p = (t ? 1e3 : 820) - n, b = Math.floor(p / (r.length - 1));
16
- return /* @__PURE__ */ o("g", { role: "list", "data-testid": "color-labels", children: r.map(({ name: c, range: l, color: y }, u) => {
17
- const e = n + b * u, f = d && L(l, m) === null, i = (l[0] + l[1]) / 2;
18
- return /* @__PURE__ */ a("g", { children: [
19
- /* @__PURE__ */ o(
20
- "line",
21
- {
22
- strokeWidth: 1,
23
- stroke: "#b2b2b2",
24
- x1: i,
25
- x2: i,
26
- y1: "100",
27
- y2: t ? "105" : "110",
28
- role: "presentation"
29
- }
30
- ),
31
- /* @__PURE__ */ o(
32
- "line",
33
- {
34
- strokeWidth: 1,
35
- stroke: "#b2b2b2",
36
- x1: i,
37
- x2: e,
38
- y1: t ? "105" : "110",
39
- y2: t ? "145" : "140",
40
- role: "presentation"
41
- }
42
- ),
43
- /* @__PURE__ */ o(
44
- "circle",
45
- {
46
- cx: e,
47
- cy: t ? "145" : "140",
48
- r: t ? 15 : 10,
49
- fill: y,
50
- role: "presentation"
51
- }
52
- ),
53
- /* @__PURE__ */ a(
54
- "text",
55
- {
56
- x: e,
57
- dominantBaseline: "middle",
58
- textAnchor: "middle",
59
- y: "150",
60
- role: "listitem",
61
- "aria-hidden": f,
62
- children: [
63
- /* @__PURE__ */ o(
64
- k,
65
- {
66
- x: e,
67
- dy: "1.25em",
68
- textAnchor: "middle",
69
- children: x(`filterTool.colors.${c}`).toLocaleLowerCase(h)
70
- }
71
- ),
72
- /* @__PURE__ */ o(
73
- A,
74
- {
75
- x: e,
76
- dy: "1.25em",
77
- textAnchor: "middle",
78
- children: l.join("–")
79
- }
80
- ),
81
- /* @__PURE__ */ o(
82
- M,
83
- {
84
- x: e,
85
- dy: "1.25em",
86
- textAnchor: "middle",
87
- children: "nm"
88
- }
89
- )
90
- ]
91
- }
92
- )
93
- ] }, c);
94
- }) });
95
- };
96
- s.displayName = "Widgets.CameraFilter.ColorLabels";
97
- const T = s;
98
- export {
99
- T as default
100
- };
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),c=require("../../../lib/utils.cjs"),t=require("../data.cjs"),j=require("./SpectrumLabels/SpectrumLabels.cjs"),x=({min:n,max:u,range:g,isCondensed:p,activeFilter:s})=>e.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMinYMin meet",viewBox:`${n} 0 ${g} 260`,"data-testid":"spectrum-display",children:[e.jsxs("defs",{children:[t.spectrums.map(({name:d,stops:r})=>e.jsx("linearGradient",{id:`${d}-gradient`,children:r.map(({offset:a,stopColor:h,id:o})=>e.jsx("stop",{offset:a,stopColor:h,id:o},`${a}-${h}`))},d)),e.jsxs("mask",{id:"spectrumMask",children:[e.jsx("rect",{width:"100%",height:"100",fill:"white",x:n}),s&&e.jsxs(e.Fragment,{children:[e.jsx("rect",{x:n,width:s.range[0]-n,height:"100%",fill:"black"}),e.jsx("rect",{x:s.range[1],width:u-s.range[1],height:"100%",fill:"black"})]})]})]}),e.jsx("g",{mask:"url(#spectrumMask)",role:"presentation",children:t.spectrums.map(({name:d,upper:r,lower:a})=>e.jsx("rect",{width:(r||u)-(a||n),height:"50%",fill:`url(#${d}-gradient)`,x:a||n,role:"presentation"},d))}),e.jsx("g",{children:t.spectrums.map(({name:d,upper:r})=>r&&e.jsx("line",{strokeWidth:2,strokeDasharray:"8 8",stroke:s&&!c.between(r,s.range[0],s.range[1])?"#000":"#fff",x1:r,x2:r,y1:0,y2:"50%"},d))}),e.jsx(j.default,{spectrums:t.spectrums,activeBand:s==null?void 0:s.band,min:n,max:u,activeMin:s==null?void 0:s.range[0],activeMax:s==null?void 0:s.range[1],isCondensed:p})]});x.displayName="Widgets.CameraFilter.SpectrumDisplay";const l=x;exports.default=l;
@@ -1,98 +0,0 @@
1
- import { jsxs as p, jsx as r, Fragment as w } from "react/jsx-runtime";
2
- import { between as k } from "../../../lib/utils.js";
3
- import { spectrums as e } from "../data.js";
4
- import l from "./SpectrumLabels/SpectrumLabels.js";
5
- const o = ({
6
- min: n,
7
- max: g,
8
- range: t,
9
- isCondensed: f,
10
- activeFilter: s
11
- }) => /* @__PURE__ */ p(
12
- "svg",
13
- {
14
- xmlns: "http://www.w3.org/2000/svg",
15
- preserveAspectRatio: "xMinYMin meet",
16
- viewBox: `${n} 0 ${t} 260`,
17
- "data-testid": "spectrum-display",
18
- children: [
19
- /* @__PURE__ */ p("defs", { children: [
20
- e.map(({ name: h, stops: d }) => /* @__PURE__ */ r("linearGradient", { id: `${h}-gradient`, children: d.map(({ offset: a, stopColor: m, id: x }) => /* @__PURE__ */ r(
21
- "stop",
22
- {
23
- offset: a,
24
- stopColor: m,
25
- id: x
26
- },
27
- `${a}-${m}`
28
- )) }, h)),
29
- /* @__PURE__ */ p("mask", { id: "spectrumMask", children: [
30
- /* @__PURE__ */ r("rect", { width: "100%", height: "100", fill: "white", x: n }),
31
- s && /* @__PURE__ */ p(w, { children: [
32
- /* @__PURE__ */ r(
33
- "rect",
34
- {
35
- x: n,
36
- width: s.range[0] - n,
37
- height: "100%",
38
- fill: "black"
39
- }
40
- ),
41
- /* @__PURE__ */ r(
42
- "rect",
43
- {
44
- x: s.range[1],
45
- width: g - s.range[1],
46
- height: "100%",
47
- fill: "black"
48
- }
49
- )
50
- ] })
51
- ] })
52
- ] }),
53
- /* @__PURE__ */ r("g", { mask: "url(#spectrumMask)", role: "presentation", children: e.map(({ name: h, upper: d, lower: a }) => /* @__PURE__ */ r(
54
- "rect",
55
- {
56
- width: (d || g) - (a || n),
57
- height: "50%",
58
- fill: `url(#${h}-gradient)`,
59
- x: a || n,
60
- role: "presentation"
61
- },
62
- h
63
- )) }),
64
- /* @__PURE__ */ r("g", { children: e.map(
65
- ({ name: h, upper: d }) => d && /* @__PURE__ */ r(
66
- "line",
67
- {
68
- strokeWidth: 2,
69
- strokeDasharray: "8 8",
70
- stroke: s && !k(d, s.range[0], s.range[1]) ? "#000" : "#fff",
71
- x1: d,
72
- x2: d,
73
- y1: 0,
74
- y2: "50%"
75
- },
76
- h
77
- )
78
- ) }),
79
- /* @__PURE__ */ r(
80
- l,
81
- {
82
- spectrums: e,
83
- activeBand: s == null ? void 0 : s.band,
84
- min: n,
85
- max: g,
86
- activeMin: s == null ? void 0 : s.range[0],
87
- activeMax: s == null ? void 0 : s.range[1],
88
- isCondensed: f
89
- }
90
- )
91
- ]
92
- }
93
- );
94
- o.displayName = "Widgets.CameraFilter.SpectrumDisplay";
95
- const M = o;
96
- export {
97
- M as default
98
- };
@@ -1 +0,0 @@
1
- "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("react/jsx-runtime"),S=require("react-i18next"),j=require("../../styles.cjs"),_=require("../../../../lib/utils.cjs"),h=require("../ColorLabels/ColorLabels.cjs"),d=({spectrums:m,activeBand:e,min:p,max:b,activeMin:a=0,activeMax:i=0,isCondensed:l})=>{const{t:n}=S.useTranslation(),f=n("camera_filter.labels.captured_range",{context:e?"":"no_filter",filter:e});return r.jsx("g",{role:"list","aria-label":f,"aria-live":"polite","data-testid":"spectrum-labels",children:m.map(({name:s,upper:x,lower:g,colors:c},u)=>{const o=x||b,t=g||p,L=e&&_.intersection([t,o],[a,i])===null;return r.jsxs("g",{role:"listitem","aria-hidden":L,children:[r.jsx(j.SpectrumLabel,{x:l&&u===0?t:(o-t)/2+t,y:"50",dominantBaseline:"middle",textAnchor:l&&u===0?"start":"middle",children:n(`camera_filter.labels.${s}`)},s),c&&r.jsx(h.default,{colors:c,isBandSelected:!!e,activeRange:[a,i],isCondensed:l})]},s)})})};d.displayName="Widgets.CameraFilter.SpectrumLabels";const q=d;exports.default=q;
@@ -1,59 +0,0 @@
1
- "use client";
2
- import { jsx as a, jsxs as x } from "react/jsx-runtime";
3
- import { useTranslation as S } from "react-i18next";
4
- import { SpectrumLabel as _ } from "../../styles.js";
5
- import { intersection as j } from "../../../../lib/utils.js";
6
- import y from "../ColorLabels/ColorLabels.js";
7
- const p = ({
8
- spectrums: d,
9
- activeBand: e,
10
- min: u,
11
- max: f,
12
- activeMin: s = 0,
13
- activeMax: i = 0,
14
- isCondensed: t
15
- }) => {
16
- const { t: o } = S(), b = o("camera_filter.labels.captured_range", {
17
- context: e ? "" : "no_filter",
18
- filter: e
19
- });
20
- return /* @__PURE__ */ a(
21
- "g",
22
- {
23
- role: "list",
24
- "aria-label": b,
25
- "aria-live": "polite",
26
- "data-testid": "spectrum-labels",
27
- children: d.map(({ name: l, upper: L, lower: g, colors: m }, c) => {
28
- const n = L || f, r = g || u, h = e && j([r, n], [s, i]) === null;
29
- return /* @__PURE__ */ x("g", { role: "listitem", "aria-hidden": h, children: [
30
- /* @__PURE__ */ a(
31
- _,
32
- {
33
- x: t && c === 0 ? r : (n - r) / 2 + r,
34
- y: "50",
35
- dominantBaseline: "middle",
36
- textAnchor: t && c === 0 ? "start" : "middle",
37
- children: o(`camera_filter.labels.${l}`)
38
- },
39
- l
40
- ),
41
- m && /* @__PURE__ */ a(
42
- y,
43
- {
44
- colors: m,
45
- isBandSelected: !!e,
46
- activeRange: [s, i],
47
- isCondensed: t
48
- }
49
- )
50
- ] }, l);
51
- })
52
- }
53
- );
54
- };
55
- p.displayName = "Widgets.CameraFilter.SpectrumLabels";
56
- const N = p;
57
- export {
58
- N as default
59
- };
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=[{band:"u",range:[338,395]},{range:[396,404]},{band:"g",range:[405,552]},{band:"r",range:[553,690]},{band:"i",range:[690,817]},{band:"z",range:[818,920]},{band:"y",range:[920,1010]}],r=[{offset:0,stopColor:"#e0e0e0"},{offset:.262,stopColor:"#dedde0"},{offset:.41,stopColor:"#dbd5e1"},{offset:.53,stopColor:"#d4c7e3"},{offset:.635,stopColor:"#cbb3e6"},{offset:.73,stopColor:"#bf9aeb"},{offset:.818,stopColor:"#b17af0"},{offset:.9,stopColor:"#a055f5"},{offset:.976,stopColor:"#8c2afc"},{offset:1,stopColor:"#861cff"}],l=[{offset:.11,stopColor:"#861cff"},{offset:.25,stopColor:"blue"},{offset:.27,stopColor:"#001ee0"},{offset:.3,stopColor:"#006d91"},{offset:.33,stopColor:"#00ab53"},{offset:.36,stopColor:"#00d826"},{offset:.38,stopColor:"#00f40a"},{offset:.39,stopColor:"lime"},{offset:.41,stopColor:"#05fe00"},{offset:.43,stopColor:"#14fc01"},{offset:.45,stopColor:"#2df803"},{offset:.47,stopColor:"#50f406"},{offset:.49,stopColor:"#7cee0a"},{offset:.51,stopColor:"#b3e70e"},{offset:.54,stopColor:"#f2de14"},{offset:.54,stopColor:"#ffdd15"},{offset:.56,stopColor:"#fccb17"},{offset:.6,stopColor:"#f49f1e"},{offset:.62,stopColor:"#f18922"},{offset:.63,stopColor:"#f08220"},{offset:.66,stopColor:"#f0711c"},{offset:.69,stopColor:"#ef5415"},{offset:.72,stopColor:"#ed2d0b"},{offset:.75,stopColor:"#ec0000"},{offset:.79,stopColor:"#eb0303"},{offset:.82,stopColor:"#e90f0f"},{offset:.86,stopColor:"#e62323"},{offset:.89,stopColor:"#e23e3e"},{offset:.93,stopColor:"#dc6262"},{offset:.96,stopColor:"#d58e8e"},{offset:.99,stopColor:"#cdc0c0"},{offset:1,stopColor:"#ccc"}],n=[{offset:0,stopColor:"#ccc"},{offset:1,stopColor:"#f2f2f2"}],t=[{name:"violet",color:"#861CFF",range:[380,450]},{name:"blue",color:"#0000FF",range:[450,495]},{name:"green",color:"#00FF00",range:[495,570]},{name:"yellow",color:"#FFDD15",range:[570,590]},{name:"orange",color:"#F18922",range:[590,620]},{name:"red",color:"#EC0000",range:[620,750]}],p=[{name:"ultraviolet",upper:400,stops:r},{name:"visible",upper:750,lower:400,stops:l,colors:t},{name:"infrared",lower:750,stops:n}],e=255,f=322,o=1084,a={condensed:{min:f,max:o,range:o-f},default:{min:e,max:o,range:o-e}};exports.colors=t;exports.filters=s;exports.rangeConfig=a;exports.spectrums=p;