@rubin-epo/epo-widget-lib 1.0.9 → 1.1.1

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 (76) hide show
  1. package/dist/ColorTool.d.ts +2 -2
  2. package/dist/FilterTool.d.ts +2 -2
  3. package/dist/IsochronePlot.js +14 -14
  4. package/dist/ViewIndicator.cjs +1 -0
  5. package/dist/ViewIndicator.d.ts +3 -0
  6. package/dist/ViewIndicator.js +149 -0
  7. package/dist/charts/Bars/index.cjs +1 -1
  8. package/dist/charts/Bars/index.js +18 -19
  9. package/dist/charts/Base/index.cjs +1 -1
  10. package/dist/charts/Base/index.js +22 -23
  11. package/dist/charts/Base/styles.d.ts +1 -1
  12. package/dist/charts/ClippingContainer/index.cjs +1 -1
  13. package/dist/charts/ClippingContainer/index.js +9 -10
  14. package/dist/charts/ForeignObject/index.cjs +1 -1
  15. package/dist/charts/ForeignObject/index.js +8 -9
  16. package/dist/charts/Guidelines/index.cjs +1 -1
  17. package/dist/charts/Guidelines/index.js +10 -11
  18. package/dist/charts/Points/index.cjs +1 -1
  19. package/dist/charts/Points/index.js +30 -31
  20. package/dist/charts/Readout/index.cjs +1 -1
  21. package/dist/charts/Readout/index.js +6 -6
  22. package/dist/charts/ScatterPlot/index.cjs +1 -1
  23. package/dist/charts/ScatterPlot/index.js +49 -50
  24. package/dist/charts/Tooltip/index.cjs +1 -1
  25. package/dist/charts/Tooltip/index.js +14 -15
  26. package/dist/charts/Viewport/index.cjs +1 -1
  27. package/dist/charts/Viewport/index.js +13 -14
  28. package/dist/charts/XAxis/index.cjs +1 -1
  29. package/dist/charts/XAxis/index.js +21 -22
  30. package/dist/charts/YAxis/index.cjs +1 -1
  31. package/dist/charts/YAxis/index.js +17 -18
  32. package/dist/charts/styles.d.ts +6 -6
  33. package/dist/lib/utils.cjs +1 -1
  34. package/dist/lib/utils.js +11 -15
  35. package/dist/widgets/CameraFilter/styles.d.ts +5 -5
  36. package/dist/widgets/ColorTool/Actions/index.d.ts +1 -1
  37. package/dist/widgets/ColorTool/FilterControls/FilterControls.d.ts +1 -1
  38. package/dist/widgets/ColorTool/ImageComposite/ImageComposite.d.ts +1 -1
  39. package/dist/widgets/ColorTool/__mocks__/index.d.ts +1 -1
  40. package/dist/widgets/ColorTool/hooks/useFilteredImages.d.ts +1 -1
  41. package/dist/widgets/ColorTool/index.d.ts +46 -1
  42. package/dist/widgets/ColorTool/lib/server.d.ts +1 -1
  43. package/dist/widgets/ColorTool/lib/utils.d.ts +1 -1
  44. package/dist/widgets/FilterTool/index.d.ts +12 -1
  45. package/dist/widgets/FilterTool/styles.d.ts +6 -6
  46. package/dist/widgets/SourceSelector/SourceMap/styles.d.ts +2 -2
  47. package/dist/widgets/SupernovaThreeVector/Histogram/index.js +6 -6
  48. package/dist/widgets/SupernovaThreeVector/Histogram/styles.d.ts +1 -1
  49. package/dist/widgets/SupernovaThreeVector/Skymap/index.cjs +1 -1
  50. package/dist/widgets/SupernovaThreeVector/Skymap/index.js +22 -22
  51. package/dist/widgets/SupernovaThreeVector/Skymap/styles.d.ts +7 -7
  52. package/dist/widgets/ViewIndicator/index.d.ts +13 -0
  53. package/dist/widgets/ViewIndicator/styles.cjs +37 -0
  54. package/dist/widgets/ViewIndicator/styles.d.ts +1510 -0
  55. package/dist/widgets/ViewIndicator/styles.js +45 -0
  56. package/package.json +2 -1
  57. package/dist/CameraFilter.cjs +0 -1
  58. package/dist/CameraFilter.d.ts +0 -3
  59. package/dist/CameraFilter.js +0 -102
  60. package/dist/Charts.cjs +0 -1
  61. package/dist/Charts.d.ts +0 -1
  62. package/dist/Charts.js +0 -24
  63. package/dist/widgets/CameraFilter/CondensedFilterRanges/CondensedFilterRanges.cjs +0 -1
  64. package/dist/widgets/CameraFilter/CondensedFilterRanges/CondensedFilterRanges.js +0 -61
  65. package/dist/widgets/CameraFilter/SpectrumDisplay/ColorLabels/ColorLabels.cjs +0 -1
  66. package/dist/widgets/CameraFilter/SpectrumDisplay/ColorLabels/ColorLabels.js +0 -99
  67. package/dist/widgets/CameraFilter/SpectrumDisplay/SpectrumDisplay.cjs +0 -1
  68. package/dist/widgets/CameraFilter/SpectrumDisplay/SpectrumDisplay.js +0 -97
  69. package/dist/widgets/CameraFilter/SpectrumDisplay/SpectrumLabels/SpectrumLabels.cjs +0 -1
  70. package/dist/widgets/CameraFilter/SpectrumDisplay/SpectrumLabels/SpectrumLabels.js +0 -58
  71. package/dist/widgets/CameraFilter/data.cjs +0 -1
  72. package/dist/widgets/CameraFilter/data.js +0 -84
  73. package/dist/widgets/CameraFilter/styles.cjs +0 -105
  74. package/dist/widgets/CameraFilter/styles.js +0 -128
  75. package/dist/widgets/ColorTool/ColorTool.d.ts +0 -46
  76. package/dist/widgets/FilterTool/FilterTool.d.ts +0 -12
@@ -0,0 +1,45 @@
1
+ "use client";
2
+ import r from "styled-components";
3
+ const e = r.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 = r.svg`
17
+ aspect-ratio: 1;
18
+ overflow: visible;
19
+ fill: none;
20
+ stroke: currentColor;
21
+ stroke-width: 2;
22
+ width: calc(var(--size-container) * 0.65);
23
+ `, n = r.div`
24
+ font-size: calc(calc(var(--size-container) - var(--size-svg-inner)) / 2);
25
+ font-weight: bold;
26
+ line-height: 1;
27
+ position: absolute;
28
+ top: 0px;
29
+ `, l = r.g`
30
+ --color-fill-primary: var(--color-rubin-yellow-200);
31
+ --color-fill-secondary: #eba85b;
32
+ fill: var(--color-fill-primary);
33
+ fill: color-mix(
34
+ in hsl,
35
+ var(--color-fill-primary) var(--percent-mix-primary),
36
+ var(--color-fill-secondary) var(--percent-mix-secondary)
37
+ );
38
+ stroke: none;
39
+ `;
40
+ export {
41
+ e as Container,
42
+ n as NorthDirection,
43
+ i as SVG,
44
+ l as ViewCone
45
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rubin-epo/epo-widget-lib",
3
- "version": "1.0.9",
3
+ "version": "1.1.1",
4
4
  "description": "Rubin Observatory Education & Public Outreach team React scientific and educational widgets.",
5
5
  "author": "Rubin EPO",
6
6
  "license": "MIT",
@@ -71,6 +71,7 @@
71
71
  "@vitejs/plugin-react": "^4",
72
72
  "babel-loader": "^8.3.0",
73
73
  "eslint-plugin-storybook": "^0.8.0",
74
+ "glob": "^11.0.1",
74
75
  "i18next": "23",
75
76
  "i18next-browser-languagedetector": "^8.0.0",
76
77
  "i18next-http-backend": "^2.5.2",
@@ -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"),d=require("../styles.cjs"),c=({filters:o,min:i,spectrumRange:l})=>{const n=m.useRef(null),a=n.current?Array.from(n.current.children):null;return e.jsxs(e.Fragment,{children:[e.jsx(d.CondensedRangeRow,{ref:n,"data-testid":"condensed-filters",children:o.map(({range:t,band:s})=>e.jsxs(d.CondensedRange,{"aria-labelledby":`${s}-name`,children:[t.join("–"),e.jsx("br",{}),"nm"]},s))}),a&&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:s},u)=>{const x=a[u],{offsetLeft:f,offsetWidth:h,offsetParent:b}=x,{offsetWidth:j}=b,p=l/j,r=(t[0]+t[1])/2,g=(f+h/2)*p;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:g+i,y1:"75%",y2:"0%",role:"presentation"})]},s)})})})]})};c.displayName="Widgets.CameraFilter.CondensedFilterRanges";exports.default=c;
@@ -1,61 +0,0 @@
1
- "use client";
2
- import { jsxs as s, Fragment as u, jsx as e } from "react/jsx-runtime";
3
- import { useRef as y } from "react";
4
- import { CondensedRangeRow as w, CondensedRange as R } from "../styles.js";
5
- const W = ({
6
- filters: i,
7
- min: l,
8
- spectrumRange: a
9
- }) => {
10
- const r = y(null), d = r.current ? Array.from(r.current.children) : null;
11
- return /* @__PURE__ */ s(u, { children: [
12
- /* @__PURE__ */ e(w, { ref: r, "data-testid": "condensed-filters", children: i.map(({ range: t, band: n }) => /* @__PURE__ */ s(R, { "aria-labelledby": `${n}-name`, children: [
13
- t.join("–"),
14
- /* @__PURE__ */ e("br", {}),
15
- "nm"
16
- ] }, n)) }),
17
- d && /* @__PURE__ */ e(
18
- "svg",
19
- {
20
- xmlns: "http://www.w3.org/2000/svg",
21
- preserveAspectRatio: "xMinYMin meet",
22
- viewBox: `${l} 0 ${a} 50`,
23
- role: "presentation",
24
- "aria-hidden": "true",
25
- children: /* @__PURE__ */ e("g", { role: "presentation", children: i.map(({ range: t, band: n }, c) => {
26
- const f = d[c], { offsetLeft: m, offsetWidth: p, offsetParent: h } = f, { offsetWidth: b } = h, x = a / b, o = (t[0] + t[1]) / 2, g = (m + p / 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: g + l,
47
- y1: "75%",
48
- y2: "0%",
49
- role: "presentation"
50
- }
51
- )
52
- ] }, n);
53
- }) })
54
- }
55
- )
56
- ] });
57
- };
58
- W.displayName = "Widgets.CameraFilter.CondensedFilterRanges";
59
- export {
60
- W as default
61
- };
@@ -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:o,color:j},y)=>{const l=n+b*y,p=d&&M.intersection(o,x)===null,i=(o[0]+o[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:l,y1:t?"105":"110",y2:t?"145":"140",role:"presentation"}),e.jsx("circle",{cx:l,cy:t?"145":"140",r:t?15:10,fill:j,role:"presentation"}),e.jsxs("text",{x:l,dominantBaseline:"middle",textAnchor:"middle",y:"150",role:"listitem","aria-hidden":p,children:[e.jsx(s.ColorName,{x:l,dy:"1.25em",textAnchor:"middle",children:u(`filterTool.colors.${c}`).toLocaleLowerCase(m)}),e.jsx(s.ColorSpectrum,{x:l,dy:"1.25em",textAnchor:"middle",children:o.join("–")}),e.jsx(s.ColorSpectrumUnit,{x:l,dy:"1.25em",textAnchor:"middle",children:"nm"})]})]},c)})})};a.displayName="Widgets.CameraFilter.ColorLabels";exports.default=a;
@@ -1,99 +0,0 @@
1
- "use client";
2
- import { jsx as o, jsxs as a } from "react/jsx-runtime";
3
- import { useTranslation as f } from "react-i18next";
4
- import { intersection as g } from "../../../../lib/utils.js";
5
- import { ColorName as k, ColorSpectrum as A, ColorSpectrumUnit as L } from "../../styles.js";
6
- const M = ({
7
- colors: l,
8
- activeRange: s,
9
- isBandSelected: m,
10
- isCondensed: t
11
- }) => {
12
- const {
13
- t: d,
14
- i18n: { language: x }
15
- } = f(), n = t ? 350 : l[0].range[0], h = (t ? 1e3 : 820) - n, p = Math.floor(h / (l.length - 1));
16
- return /* @__PURE__ */ o("g", { role: "list", "data-testid": "color-labels", children: l.map(({ name: c, range: r, color: b }, y) => {
17
- const e = n + p * y, u = m && g(r, s) === null, i = (r[0] + r[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: b,
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": u,
62
- children: [
63
- /* @__PURE__ */ o(
64
- k,
65
- {
66
- x: e,
67
- dy: "1.25em",
68
- textAnchor: "middle",
69
- children: d(`filterTool.colors.${c}`).toLocaleLowerCase(x)
70
- }
71
- ),
72
- /* @__PURE__ */ o(
73
- A,
74
- {
75
- x: e,
76
- dy: "1.25em",
77
- textAnchor: "middle",
78
- children: r.join("–")
79
- }
80
- ),
81
- /* @__PURE__ */ o(
82
- L,
83
- {
84
- x: e,
85
- dy: "1.25em",
86
- textAnchor: "middle",
87
- children: "nm"
88
- }
89
- )
90
- ]
91
- }
92
- )
93
- ] }, c);
94
- }) });
95
- };
96
- M.displayName = "Widgets.CameraFilter.ColorLabels";
97
- export {
98
- M as default
99
- };
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),o=require("../../../lib/utils.cjs"),t=require("../data.cjs"),l=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:j})=>e.jsx("stop",{offset:a,stopColor:h,id:j},`${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&&!o.between(r,s.range[0],s.range[1])?"#000":"#fff",x1:r,x2:r,y1:0,y2:"50%"},d))}),e.jsx(l.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";exports.default=x;
@@ -1,97 +0,0 @@
1
- import { jsxs as g, jsx as r, Fragment as x } from "react/jsx-runtime";
2
- import { between as w } from "../../../lib/utils.js";
3
- import { spectrums as e } from "../data.js";
4
- import k from "./SpectrumLabels/SpectrumLabels.js";
5
- const l = ({
6
- min: n,
7
- max: p,
8
- range: o,
9
- isCondensed: f,
10
- activeFilter: s
11
- }) => /* @__PURE__ */ g(
12
- "svg",
13
- {
14
- xmlns: "http://www.w3.org/2000/svg",
15
- preserveAspectRatio: "xMinYMin meet",
16
- viewBox: `${n} 0 ${o} 260`,
17
- "data-testid": "spectrum-display",
18
- children: [
19
- /* @__PURE__ */ g("defs", { children: [
20
- e.map(({ name: h, stops: d }) => /* @__PURE__ */ r("linearGradient", { id: `${h}-gradient`, children: d.map(({ offset: a, stopColor: m, id: t }) => /* @__PURE__ */ r(
21
- "stop",
22
- {
23
- offset: a,
24
- stopColor: m,
25
- id: t
26
- },
27
- `${a}-${m}`
28
- )) }, h)),
29
- /* @__PURE__ */ g("mask", { id: "spectrumMask", children: [
30
- /* @__PURE__ */ r("rect", { width: "100%", height: "100", fill: "white", x: n }),
31
- s && /* @__PURE__ */ g(x, { 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: p - 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 || p) - (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 && !w(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
- k,
81
- {
82
- spectrums: e,
83
- activeBand: s == null ? void 0 : s.band,
84
- min: n,
85
- max: p,
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
- l.displayName = "Widgets.CameraFilter.SpectrumDisplay";
95
- export {
96
- l as default
97
- };
@@ -1 +0,0 @@
1
- "use client";"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("react/jsx-runtime"),L=require("react-i18next"),S=require("../../styles.cjs"),_=require("../../../../lib/utils.cjs"),h=require("../ColorLabels/ColorLabels.cjs"),d=({spectrums:m,activeBand:e,min:p,max:b,activeMin:i=0,activeMax:a=0,isCondensed:l})=>{const{t:n}=L.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:u},c)=>{const o=x||b,t=g||p,j=e&&_.intersection([t,o],[i,a])===null;return r.jsxs("g",{role:"listitem","aria-hidden":j,children:[r.jsx(S.SpectrumLabel,{x:l&&c===0?t:(o-t)/2+t,y:"50",dominantBaseline:"middle",textAnchor:l&&c===0?"start":"middle",children:n(`camera_filter.labels.${s}`)},s),u&&r.jsx(h.default,{colors:u,isBandSelected:!!e,activeRange:[i,a],isCondensed:l})]},s)})})};d.displayName="Widgets.CameraFilter.SpectrumLabels";exports.default=d;
@@ -1,58 +0,0 @@
1
- "use client";
2
- import { jsx as a, jsxs as h } from "react/jsx-runtime";
3
- import { useTranslation as x } from "react-i18next";
4
- import { SpectrumLabel as S } from "../../styles.js";
5
- import { intersection as _ } from "../../../../lib/utils.js";
6
- import j from "../ColorLabels/ColorLabels.js";
7
- const y = ({
8
- spectrums: p,
9
- activeBand: e,
10
- min: d,
11
- max: f,
12
- activeMin: i = 0,
13
- activeMax: s = 0,
14
- isCondensed: t
15
- }) => {
16
- const { t: o } = x(), u = 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": u,
25
- "aria-live": "polite",
26
- "data-testid": "spectrum-labels",
27
- children: p.map(({ name: l, upper: b, lower: L, colors: m }, n) => {
28
- const c = b || f, r = L || d, g = e && _([r, c], [i, s]) === null;
29
- return /* @__PURE__ */ h("g", { role: "listitem", "aria-hidden": g, children: [
30
- /* @__PURE__ */ a(
31
- S,
32
- {
33
- x: t && n === 0 ? r : (c - r) / 2 + r,
34
- y: "50",
35
- dominantBaseline: "middle",
36
- textAnchor: t && n === 0 ? "start" : "middle",
37
- children: o(`camera_filter.labels.${l}`)
38
- },
39
- l
40
- ),
41
- m && /* @__PURE__ */ a(
42
- j,
43
- {
44
- colors: m,
45
- isBandSelected: !!e,
46
- activeRange: [i, s],
47
- isCondensed: t
48
- }
49
- )
50
- ] }, l);
51
- })
52
- }
53
- );
54
- };
55
- y.displayName = "Widgets.CameraFilter.SpectrumLabels";
56
- export {
57
- y as default
58
- };
@@ -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;
@@ -1,84 +0,0 @@
1
- const n = [
2
- { band: "u", range: [338, 395] },
3
- { range: [396, 404] },
4
- { band: "g", range: [405, 552] },
5
- { band: "r", range: [553, 690] },
6
- { band: "i", range: [690, 817] },
7
- { band: "z", range: [818, 920] },
8
- { band: "y", range: [920, 1010] }
9
- ], s = [
10
- { offset: 0, stopColor: "#e0e0e0" },
11
- { offset: 0.262, stopColor: "#dedde0" },
12
- { offset: 0.41, stopColor: "#dbd5e1" },
13
- { offset: 0.53, stopColor: "#d4c7e3" },
14
- { offset: 0.635, stopColor: "#cbb3e6" },
15
- { offset: 0.73, stopColor: "#bf9aeb" },
16
- { offset: 0.818, stopColor: "#b17af0" },
17
- { offset: 0.9, stopColor: "#a055f5" },
18
- { offset: 0.976, stopColor: "#8c2afc" },
19
- { offset: 1, stopColor: "#861cff" }
20
- ], t = [
21
- { offset: 0.11, stopColor: "#861cff" },
22
- { offset: 0.25, stopColor: "blue" },
23
- { offset: 0.27, stopColor: "#001ee0" },
24
- { offset: 0.3, stopColor: "#006d91" },
25
- { offset: 0.33, stopColor: "#00ab53" },
26
- { offset: 0.36, stopColor: "#00d826" },
27
- { offset: 0.38, stopColor: "#00f40a" },
28
- { offset: 0.39, stopColor: "lime" },
29
- { offset: 0.41, stopColor: "#05fe00" },
30
- { offset: 0.43, stopColor: "#14fc01" },
31
- { offset: 0.45, stopColor: "#2df803" },
32
- { offset: 0.47, stopColor: "#50f406" },
33
- { offset: 0.49, stopColor: "#7cee0a" },
34
- { offset: 0.51, stopColor: "#b3e70e" },
35
- { offset: 0.54, stopColor: "#f2de14" },
36
- { offset: 0.54, stopColor: "#ffdd15" },
37
- { offset: 0.56, stopColor: "#fccb17" },
38
- { offset: 0.6, stopColor: "#f49f1e" },
39
- { offset: 0.62, stopColor: "#f18922" },
40
- { offset: 0.63, stopColor: "#f08220" },
41
- { offset: 0.66, stopColor: "#f0711c" },
42
- { offset: 0.69, stopColor: "#ef5415" },
43
- { offset: 0.72, stopColor: "#ed2d0b" },
44
- { offset: 0.75, stopColor: "#ec0000" },
45
- { offset: 0.79, stopColor: "#eb0303" },
46
- { offset: 0.82, stopColor: "#e90f0f" },
47
- { offset: 0.86, stopColor: "#e62323" },
48
- { offset: 0.89, stopColor: "#e23e3e" },
49
- { offset: 0.93, stopColor: "#dc6262" },
50
- { offset: 0.96, stopColor: "#d58e8e" },
51
- { offset: 0.99, stopColor: "#cdc0c0" },
52
- { offset: 1, stopColor: "#ccc" }
53
- ], r = [
54
- { offset: 0, stopColor: "#ccc" },
55
- { offset: 1, stopColor: "#f2f2f2" }
56
- ], l = [
57
- { name: "violet", color: "#861CFF", range: [380, 450] },
58
- { name: "blue", color: "#0000FF", range: [450, 495] },
59
- { name: "green", color: "#00FF00", range: [495, 570] },
60
- { name: "yellow", color: "#FFDD15", range: [570, 590] },
61
- { name: "orange", color: "#F18922", range: [590, 620] },
62
- { name: "red", color: "#EC0000", range: [620, 750] }
63
- ], p = [
64
- { name: "ultraviolet", upper: 400, stops: s },
65
- { name: "visible", upper: 750, lower: 400, stops: t, colors: l },
66
- { name: "infrared", lower: 750, stops: r }
67
- ], e = 255, f = 322, o = 1084, a = {
68
- condensed: {
69
- min: f,
70
- max: o,
71
- range: o - f
72
- },
73
- default: {
74
- min: e,
75
- max: o,
76
- range: o - e
77
- }
78
- };
79
- export {
80
- l as colors,
81
- n as filters,
82
- a as rangeConfig,
83
- p as spectrums
84
- };