@treasuryspatial/viewer-ui-kit 0.1.41 → 0.1.56

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 (90) hide show
  1. package/dist/AdminLayout.js +1 -1
  2. package/dist/AdminShell.d.ts +6 -1
  3. package/dist/AdminShell.d.ts.map +1 -1
  4. package/dist/AdminShell.js +45 -3
  5. package/dist/ChooserActionCard.d.ts +10 -0
  6. package/dist/ChooserActionCard.d.ts.map +1 -0
  7. package/dist/ChooserActionCard.js +39 -0
  8. package/dist/ComposerRightRail.d.ts +3 -1
  9. package/dist/ComposerRightRail.d.ts.map +1 -1
  10. package/dist/ComposerRightRail.js +11 -43
  11. package/dist/ConfiguratorShell.js +1 -1
  12. package/dist/LandingShell.d.ts +2 -1
  13. package/dist/LandingShell.d.ts.map +1 -1
  14. package/dist/LandingShell.js +162 -32
  15. package/dist/LoginForm.js +2 -2
  16. package/dist/LoginShell.d.ts +2 -1
  17. package/dist/LoginShell.d.ts.map +1 -1
  18. package/dist/LoginShell.js +38 -15
  19. package/dist/ManifestTopBar.d.ts +7 -1
  20. package/dist/ManifestTopBar.d.ts.map +1 -1
  21. package/dist/ManifestTopBar.js +249 -38
  22. package/dist/MetricsPanel.d.ts +1 -1
  23. package/dist/MetricsPanel.d.ts.map +1 -1
  24. package/dist/MetricsPanel.js +19 -29
  25. package/dist/MetricsPanelContent.d.ts +38 -17
  26. package/dist/MetricsPanelContent.d.ts.map +1 -1
  27. package/dist/MetricsPanelContent.js +84 -90
  28. package/dist/ModeBar.d.ts +6 -2
  29. package/dist/ModeBar.d.ts.map +1 -1
  30. package/dist/ModeBar.js +49 -82
  31. package/dist/ModuleSelectorPanel.d.ts +2 -1
  32. package/dist/ModuleSelectorPanel.d.ts.map +1 -1
  33. package/dist/ModuleSelectorPanel.js +47 -49
  34. package/dist/PanelSkin.d.ts.map +1 -1
  35. package/dist/PanelSkin.js +1598 -312
  36. package/dist/PanelSystem.d.ts +45 -0
  37. package/dist/PanelSystem.d.ts.map +1 -0
  38. package/dist/PanelSystem.js +450 -0
  39. package/dist/PanelTabs.d.ts.map +1 -1
  40. package/dist/PanelTabs.js +8 -34
  41. package/dist/PanelToggleDock.d.ts +10 -0
  42. package/dist/PanelToggleDock.d.ts.map +1 -0
  43. package/dist/PanelToggleDock.js +40 -0
  44. package/dist/PromptPackChooserPanel.d.ts +12 -11
  45. package/dist/PromptPackChooserPanel.d.ts.map +1 -1
  46. package/dist/PromptPackChooserPanel.js +103 -63
  47. package/dist/SceneInspectorPanel.d.ts +42 -0
  48. package/dist/SceneInspectorPanel.d.ts.map +1 -0
  49. package/dist/SceneInspectorPanel.js +135 -0
  50. package/dist/ScienceDataPanelContent.d.ts +16 -0
  51. package/dist/ScienceDataPanelContent.d.ts.map +1 -0
  52. package/dist/ScienceDataPanelContent.js +31 -0
  53. package/dist/ScienceMetricsPanelContent.d.ts +53 -0
  54. package/dist/ScienceMetricsPanelContent.d.ts.map +1 -0
  55. package/dist/ScienceMetricsPanelContent.js +415 -0
  56. package/dist/SpatialHud.d.ts +18 -0
  57. package/dist/SpatialHud.d.ts.map +1 -0
  58. package/dist/SpatialHud.js +120 -0
  59. package/dist/StreetviewModeSurface.d.ts +40 -0
  60. package/dist/StreetviewModeSurface.d.ts.map +1 -0
  61. package/dist/StreetviewModeSurface.js +358 -0
  62. package/dist/SurfaceSwitcher.d.ts +11 -0
  63. package/dist/SurfaceSwitcher.d.ts.map +1 -0
  64. package/dist/SurfaceSwitcher.js +46 -0
  65. package/dist/TopBar.d.ts +2 -0
  66. package/dist/TopBar.d.ts.map +1 -1
  67. package/dist/TopBar.js +3 -1
  68. package/dist/UnknownModeSurface.d.ts +6 -0
  69. package/dist/UnknownModeSurface.d.ts.map +1 -0
  70. package/dist/UnknownModeSurface.js +41 -0
  71. package/dist/index.d.ts +19 -0
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +12 -0
  74. package/dist/landingTokens.d.ts +7 -0
  75. package/dist/landingTokens.d.ts.map +1 -0
  76. package/dist/landingTokens.js +6 -0
  77. package/dist/layout.d.ts +27 -27
  78. package/dist/layout.d.ts.map +1 -1
  79. package/dist/layout.js +33 -27
  80. package/dist/mapMetrics.d.ts +88 -0
  81. package/dist/mapMetrics.d.ts.map +1 -0
  82. package/dist/mapMetrics.js +1 -0
  83. package/dist/panelPrimitives.d.ts +11 -0
  84. package/dist/panelPrimitives.d.ts.map +1 -0
  85. package/dist/panelPrimitives.js +41 -0
  86. package/dist/topbarLogoPolicy.d.ts +14 -0
  87. package/dist/topbarLogoPolicy.d.ts.map +1 -0
  88. package/dist/topbarLogoPolicy.js +41 -0
  89. package/dist/tsconfig.tsbuildinfo +1 -1
  90. package/package.json +18 -5
@@ -0,0 +1,45 @@
1
+ export declare const panelSystemFontStack = "var(--index-panel-font, var(--ui-font-family, Aeonik, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif))";
2
+ export declare const panelSystemVarsCss: import("styled-components").RuleSet<object>;
3
+ export declare const panelSystemSurfaceCss: import("styled-components").RuleSet<object>;
4
+ export declare const panelSystemBodyCss: import("styled-components").RuleSet<object>;
5
+ export declare const panelSystemTitleCss: import("styled-components").RuleSet<object>;
6
+ export declare const panelSystemSectionHeadingCss: import("styled-components").RuleSet<object>;
7
+ export declare const panelSystemSubheadingCss: import("styled-components").RuleSet<object>;
8
+ export declare const panelSystemLabelCss: import("styled-components").RuleSet<object>;
9
+ export declare const panelSystemBodyTextCss: import("styled-components").RuleSet<object>;
10
+ export declare const panelSystemValueCss: import("styled-components").RuleSet<object>;
11
+ export declare const panelSystemCompactSectionHeadingCss: import("styled-components").RuleSet<object>;
12
+ export declare const panelSystemCompactSubheadingCss: import("styled-components").RuleSet<object>;
13
+ export declare const panelSystemCompactLabelCss: import("styled-components").RuleSet<object>;
14
+ export declare const panelSystemCompactBodyTextCss: import("styled-components").RuleSet<object>;
15
+ export declare const panelSystemCompactValueCss: import("styled-components").RuleSet<object>;
16
+ export declare const panelSystemSectionCss: import("styled-components").RuleSet<object>;
17
+ export declare const panelSystemCompactSectionCss: import("styled-components").RuleSet<object>;
18
+ export declare const panelSystemCardCss: import("styled-components").RuleSet<object>;
19
+ export declare const panelSystemMetricCardCss: import("styled-components").RuleSet<object>;
20
+ export declare const panelSystemActionCardCss: import("styled-components").RuleSet<object>;
21
+ export declare const panelSystemControlCss: import("styled-components").RuleSet<object>;
22
+ export declare const panelSystemToggleBarCss: import("styled-components").RuleSet<object>;
23
+ export declare const panelSystemFeatureToggleCss: import("styled-components").RuleSet<object>;
24
+ export declare const panelSystemSwitchToggleCss: import("styled-components").RuleSet<object>;
25
+ export declare const panelSystemInputCss: import("styled-components").RuleSet<object>;
26
+ export declare const panelSystemToggleCss: import("styled-components").RuleSet<object>;
27
+ export declare const panelSystemSliderCss: import("styled-components").RuleSet<object>;
28
+ export declare const PanelSystemRoot: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
29
+ export declare const PanelSystemSection: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, never>> & string;
30
+ export declare const PanelSystemTitle: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, never>> & string;
31
+ export declare const PanelSystemHeading: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, never>> & string;
32
+ export declare const PanelSystemSubheading: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, never>> & string;
33
+ export declare const PanelSystemText: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, never>> & string;
34
+ export declare const PanelSystemCard: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
35
+ export declare const PanelSystemMetricCard: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
36
+ export declare const PanelSystemActionCard: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>> & string;
37
+ export declare const PanelSystemButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>> & string;
38
+ export declare const PanelSystemToggleBar: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
39
+ export declare const PanelSystemFeatureToggle: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>> & string;
40
+ export declare const PanelSystemSwitchToggle: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>> & string;
41
+ export declare const PanelSystemToggle: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>> & string;
42
+ export declare const PanelSystemInput: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never>> & string;
43
+ export declare const PanelSystemSelect: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement>, never>> & string;
44
+ export declare const PanelSystemTextarea: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").TextareaHTMLAttributes<HTMLTextAreaElement>, HTMLTextAreaElement>, never>> & string;
45
+ //# sourceMappingURL=PanelSystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PanelSystem.d.ts","sourceRoot":"","sources":["../src/PanelSystem.tsx"],"names":[],"mappings":"AAIA,eAAO,MAAM,oBAAoB,yJACqH,CAAC;AAEvJ,eAAO,MAAM,kBAAkB,6CAe9B,CAAC;AAEF,eAAO,MAAM,qBAAqB,6CASjC,CAAC;AAEF,eAAO,MAAM,kBAAkB,6CAS9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,6CAS/B,CAAC;AAEF,eAAO,MAAM,4BAA4B,6CASxC,CAAC;AAEF,eAAO,MAAM,wBAAwB,6CASpC,CAAC;AAEF,eAAO,MAAM,mBAAmB,6CAQ/B,CAAC;AAEF,eAAO,MAAM,sBAAsB,6CAQlC,CAAC;AAEF,eAAO,MAAM,mBAAmB,6CAS/B,CAAC;AAEF,eAAO,MAAM,mCAAmC,6CAS/C,CAAC;AAEF,eAAO,MAAM,+BAA+B,6CAS3C,CAAC;AAEF,eAAO,MAAM,0BAA0B,6CAQtC,CAAC;AAEF,eAAO,MAAM,6BAA6B,6CAQzC,CAAC;AAEF,eAAO,MAAM,0BAA0B,6CAStC,CAAC;AAEF,eAAO,MAAM,qBAAqB,6CAUjC,CAAC;AAEF,eAAO,MAAM,4BAA4B,6CAIxC,CAAC;AAEF,eAAO,MAAM,kBAAkB,6CAM9B,CAAC;AAEF,eAAO,MAAM,wBAAwB,6CAGpC,CAAC;AAEF,eAAO,MAAM,wBAAwB,6CAWpC,CAAC;AAEF,eAAO,MAAM,qBAAqB,6CAajC,CAAC;AAEF,eAAO,MAAM,uBAAuB,6CAYnC,CAAC;AAEF,eAAO,MAAM,2BAA2B,6CAyCvC,CAAC;AAEF,eAAO,MAAM,0BAA0B,6CA6DtC,CAAC;AAEF,eAAO,MAAM,mBAAmB,6CAmB/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,6CAWhC,CAAC;AAEF,eAAO,MAAM,oBAAoB,6CAyChC,CAAC;AAEF,eAAO,MAAM,eAAe,6NAE3B,CAAC;AAEF,eAAO,MAAM,kBAAkB,uNAE9B,CAAC;AAEF,eAAO,MAAM,gBAAgB,qOAE5B,CAAC;AAEF,eAAO,MAAM,kBAAkB,qOAE9B,CAAC;AAEF,eAAO,MAAM,qBAAqB,qOAEjC,CAAC;AAEF,eAAO,MAAM,eAAe,yOAE3B,CAAC;AAEF,eAAO,MAAM,eAAe,6NAE3B,CAAC;AAEF,eAAO,MAAM,qBAAqB,6NAEjC,CAAC;AAEF,eAAO,MAAM,qBAAqB,yOASjC,CAAC;AAEF,eAAO,MAAM,iBAAiB,yOAG7B,CAAC;AAEF,eAAO,MAAM,oBAAoB,6NAEhC,CAAC;AAEF,eAAO,MAAM,wBAAwB,yOAEpC,CAAC;AAEF,eAAO,MAAM,uBAAuB,yOAEnC,CAAC;AAEF,eAAO,MAAM,iBAAiB,yOAE7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,sOAE5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,yOAE7B,CAAC;AAEF,eAAO,MAAM,mBAAmB,+OAI/B,CAAC"}
@@ -0,0 +1,450 @@
1
+ 'use client';
2
+ import styled, { css } from 'styled-components';
3
+ export const panelSystemFontStack = 'var(--index-panel-font, var(--ui-font-family, Aeonik, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif))';
4
+ export const panelSystemVarsCss = css `
5
+ --panel-system-surface: var(--tenant-panel-background, var(--viewer-ui-color-surface, rgb(255 255 255)));
6
+ --panel-system-surface-alt: var(--tenant-panel-surface-alt, rgba(249, 250, 251, 0.64));
7
+ --panel-system-border: var(--tenant-panel-border, var(--viewer-ui-color-panel-border, rgb(229 231 235)));
8
+ --panel-system-border-subtle: var(
9
+ --viewer-ui-color-panel-border-subtle,
10
+ color-mix(in srgb, var(--panel-system-border) 78%, transparent)
11
+ );
12
+ --panel-system-text: var(--tenant-panel-text, var(--viewer-ui-color-text-strong, rgb(31 41 55)));
13
+ --panel-system-muted: var(--tenant-panel-muted, var(--viewer-ui-color-text-muted, rgb(107 114 128)));
14
+ --panel-system-subtle: var(--tenant-panel-subtle, var(--viewer-ui-color-text-subtle, rgb(107 114 128)));
15
+ --panel-system-accent: var(--tenant-panel-primary, var(--viewer-ui-color-button-primary, rgb(49 143 78)));
16
+ --panel-system-action-bg: color-mix(in srgb, var(--panel-system-accent) 10%, var(--panel-system-surface));
17
+ --panel-system-action-border: color-mix(in srgb, var(--panel-system-accent) 24%, var(--panel-system-border));
18
+ --panel-system-hover-bg: color-mix(in srgb, var(--panel-system-accent) 8%, var(--panel-system-surface));
19
+ `;
20
+ export const panelSystemSurfaceCss = css `
21
+ ${panelSystemVarsCss}
22
+ background: var(--panel-system-surface);
23
+ color: var(--panel-system-text);
24
+ font-family: ${panelSystemFontStack};
25
+
26
+ * {
27
+ font-family: inherit;
28
+ }
29
+ `;
30
+ export const panelSystemBodyCss = css `
31
+ ${panelSystemSurfaceCss}
32
+ background:
33
+ linear-gradient(
34
+ 180deg,
35
+ var(--panel-system-surface-alt) 0,
36
+ var(--panel-system-surface) 160px
37
+ );
38
+ padding: 18px 22px 22px 16px;
39
+ `;
40
+ export const panelSystemTitleCss = css `
41
+ margin: 0;
42
+ color: var(--panel-system-accent, var(--panel-system-text));
43
+ font-family: ${panelSystemFontStack};
44
+ font-size: 32px;
45
+ font-weight: 500;
46
+ line-height: 1.08;
47
+ letter-spacing: 0;
48
+ text-transform: none;
49
+ `;
50
+ export const panelSystemSectionHeadingCss = css `
51
+ margin: 0;
52
+ color: var(--panel-system-text);
53
+ font-family: ${panelSystemFontStack};
54
+ font-size: 20px;
55
+ font-weight: 400;
56
+ line-height: 1.25;
57
+ letter-spacing: 0;
58
+ text-transform: none;
59
+ `;
60
+ export const panelSystemSubheadingCss = css `
61
+ margin: 0;
62
+ color: var(--panel-system-text);
63
+ font-family: ${panelSystemFontStack};
64
+ font-size: 18px;
65
+ font-weight: 400;
66
+ line-height: 1.22;
67
+ letter-spacing: 0;
68
+ text-transform: none;
69
+ `;
70
+ export const panelSystemLabelCss = css `
71
+ color: var(--panel-system-subtle);
72
+ font-family: ${panelSystemFontStack};
73
+ font-size: 14px;
74
+ font-weight: 300;
75
+ line-height: 1.35;
76
+ letter-spacing: 0;
77
+ text-transform: none;
78
+ `;
79
+ export const panelSystemBodyTextCss = css `
80
+ color: var(--panel-system-muted);
81
+ font-family: ${panelSystemFontStack};
82
+ font-size: 14px;
83
+ font-weight: 300;
84
+ line-height: 1.4;
85
+ letter-spacing: 0;
86
+ text-transform: none;
87
+ `;
88
+ export const panelSystemValueCss = css `
89
+ color: var(--panel-system-text);
90
+ font-family: ${panelSystemFontStack};
91
+ font-size: 14px;
92
+ font-weight: 300;
93
+ line-height: 1.4;
94
+ letter-spacing: 0;
95
+ text-transform: none;
96
+ font-variant-numeric: tabular-nums;
97
+ `;
98
+ export const panelSystemCompactSectionHeadingCss = css `
99
+ margin: 0;
100
+ color: var(--panel-system-text);
101
+ font-family: ${panelSystemFontStack};
102
+ font-size: 18px;
103
+ font-weight: 400;
104
+ line-height: 1.22;
105
+ letter-spacing: 0;
106
+ text-transform: none;
107
+ `;
108
+ export const panelSystemCompactSubheadingCss = css `
109
+ margin: 0;
110
+ color: var(--panel-system-text);
111
+ font-family: ${panelSystemFontStack};
112
+ font-size: 15px;
113
+ font-weight: 400;
114
+ line-height: 1.22;
115
+ letter-spacing: 0;
116
+ text-transform: none;
117
+ `;
118
+ export const panelSystemCompactLabelCss = css `
119
+ color: var(--panel-system-subtle);
120
+ font-family: ${panelSystemFontStack};
121
+ font-size: 12px;
122
+ font-weight: 300;
123
+ line-height: 1.3;
124
+ letter-spacing: 0;
125
+ text-transform: none;
126
+ `;
127
+ export const panelSystemCompactBodyTextCss = css `
128
+ color: var(--panel-system-muted);
129
+ font-family: ${panelSystemFontStack};
130
+ font-size: 12px;
131
+ font-weight: 300;
132
+ line-height: 1.35;
133
+ letter-spacing: 0;
134
+ text-transform: none;
135
+ `;
136
+ export const panelSystemCompactValueCss = css `
137
+ color: var(--panel-system-text);
138
+ font-family: ${panelSystemFontStack};
139
+ font-size: 13px;
140
+ font-weight: 300;
141
+ line-height: 1.35;
142
+ letter-spacing: 0;
143
+ text-transform: none;
144
+ font-variant-numeric: tabular-nums;
145
+ `;
146
+ export const panelSystemSectionCss = css `
147
+ display: flex;
148
+ flex-direction: column;
149
+ gap: 16px;
150
+ margin: 0;
151
+ padding: 0 0 24px;
152
+ border: 0;
153
+ border-bottom: 1px solid var(--panel-system-border);
154
+ background: transparent;
155
+ border-radius: 0;
156
+ `;
157
+ export const panelSystemCompactSectionCss = css `
158
+ ${panelSystemSectionCss}
159
+ gap: 10px;
160
+ padding-bottom: 16px;
161
+ `;
162
+ export const panelSystemCardCss = css `
163
+ border: 1px solid var(--panel-system-border);
164
+ border-radius: 12px;
165
+ background: var(--panel-system-surface);
166
+ color: var(--panel-system-text);
167
+ box-shadow: none;
168
+ `;
169
+ export const panelSystemMetricCardCss = css `
170
+ ${panelSystemCardCss}
171
+ padding: 18px 20px;
172
+ `;
173
+ export const panelSystemActionCardCss = css `
174
+ ${panelSystemCardCss}
175
+ width: 100%;
176
+ min-height: 84px;
177
+ padding: 20px 24px;
178
+ border-color: var(--panel-system-action-border);
179
+ background: var(--panel-system-action-bg);
180
+ display: flex;
181
+ align-items: center;
182
+ gap: 16px;
183
+ text-align: left;
184
+ `;
185
+ export const panelSystemControlCss = css `
186
+ min-height: 34px;
187
+ border-radius: 4px;
188
+ border: 1px solid var(--panel-system-border-subtle);
189
+ background: var(--panel-system-surface);
190
+ color: var(--panel-system-muted);
191
+ padding: 0 13px;
192
+ font-family: ${panelSystemFontStack};
193
+ font-size: 14px;
194
+ font-weight: 400;
195
+ line-height: 1.2;
196
+ letter-spacing: 0;
197
+ text-transform: none;
198
+ `;
199
+ export const panelSystemToggleBarCss = css `
200
+ display: flex;
201
+ flex-wrap: nowrap;
202
+ align-items: center;
203
+ justify-content: center;
204
+ gap: 8px;
205
+ overflow-x: auto;
206
+ scrollbar-width: none;
207
+
208
+ &::-webkit-scrollbar {
209
+ display: none;
210
+ }
211
+ `;
212
+ export const panelSystemFeatureToggleCss = css `
213
+ cursor: pointer;
214
+ user-select: none;
215
+ border: none;
216
+ outline: none;
217
+ display: inline-flex;
218
+ align-items: center;
219
+ justify-content: center;
220
+ flex: 0 0 auto;
221
+ min-height: 28px;
222
+ padding: 4px 10px;
223
+ border-radius: 16px;
224
+ background: var(--panel-system-toggle-bg, rgba(255, 255, 255, 0.6));
225
+ color: var(--panel-system-toggle-fg, rgb(0 0 0));
226
+ font-family: ${panelSystemFontStack};
227
+ font-size: 13px;
228
+ font-weight: 400;
229
+ line-height: 18px;
230
+ letter-spacing: 0;
231
+ text-decoration: none;
232
+ text-transform: none;
233
+ white-space: nowrap;
234
+ transition: background-color 150ms ease, color 150ms ease, opacity 150ms ease;
235
+
236
+ &[data-active='true'],
237
+ &[aria-pressed='true'],
238
+ &[aria-checked='true'],
239
+ &[aria-selected='true'] {
240
+ background: var(--panel-system-accent, var(--brand-primary, rgb(49 143 78)));
241
+ color: var(--viewer-ui-color-button-primary-text, rgb(255 255 255));
242
+ }
243
+
244
+ &:hover {
245
+ text-decoration: none;
246
+ }
247
+
248
+ &:disabled,
249
+ &[aria-disabled='true'] {
250
+ cursor: not-allowed;
251
+ opacity: 0.58;
252
+ }
253
+ `;
254
+ export const panelSystemSwitchToggleCss = css `
255
+ ${panelSystemVarsCss}
256
+ cursor: pointer;
257
+ user-select: none;
258
+ border: none;
259
+ outline: none;
260
+ background: transparent;
261
+ color: var(--panel-system-toggle-fg, rgb(0 0 0));
262
+ display: inline-flex;
263
+ align-items: center;
264
+ justify-content: center;
265
+ gap: 8px;
266
+ padding: 0;
267
+ font-family: ${panelSystemFontStack};
268
+ font-size: 13px;
269
+ font-weight: 400;
270
+ line-height: 18px;
271
+ letter-spacing: 0;
272
+ text-transform: none;
273
+ white-space: nowrap;
274
+
275
+ .panel-system-switch-track {
276
+ position: relative;
277
+ box-sizing: content-box;
278
+ width: 12px;
279
+ height: 12px;
280
+ padding: 7px 16px;
281
+ border: 1px solid var(--panel-system-toggle-border, rgb(0 0 0));
282
+ border-radius: 18px;
283
+ background: var(--panel-system-surface, rgb(255 255 255));
284
+ flex: 0 0 auto;
285
+ }
286
+
287
+ .panel-system-switch-thumb {
288
+ position: absolute;
289
+ top: 50%;
290
+ left: 5px;
291
+ width: 18px;
292
+ height: 18px;
293
+ border-radius: 999px;
294
+ background: var(--panel-system-toggle-fg, rgb(0 0 0));
295
+ transform: translateY(-50%);
296
+ transition: left 160ms ease, background-color 160ms ease;
297
+ }
298
+
299
+ .panel-system-switch-label {
300
+ color: var(--panel-system-text);
301
+ transition: color 150ms ease;
302
+ }
303
+
304
+ &[data-active='true'],
305
+ &[aria-expanded='true'] {
306
+ .panel-system-switch-thumb {
307
+ left: 21px;
308
+ background: var(--panel-system-accent, var(--brand-primary, rgb(49 143 78)));
309
+ }
310
+ }
311
+
312
+ &:hover .panel-system-switch-label {
313
+ color: var(--panel-system-accent, var(--brand-primary, rgb(49 143 78)));
314
+ }
315
+ `;
316
+ export const panelSystemInputCss = css `
317
+ width: 100%;
318
+ min-height: 34px;
319
+ border-radius: 4px;
320
+ border: 1px solid var(--panel-system-border);
321
+ background: var(--panel-system-surface);
322
+ color: var(--panel-system-text);
323
+ padding: 7px 10px;
324
+ font-family: ${panelSystemFontStack};
325
+ font-size: 14px;
326
+ font-weight: 300;
327
+ line-height: 1.25;
328
+ letter-spacing: 0;
329
+ outline: none;
330
+
331
+ &:focus {
332
+ border-color: var(--panel-system-accent);
333
+ box-shadow: none;
334
+ }
335
+ `;
336
+ export const panelSystemToggleCss = css `
337
+ ${panelSystemControlCss}
338
+ cursor: pointer;
339
+ transition: background 150ms ease, color 150ms ease, border-color 150ms ease;
340
+
341
+ &[data-active='true'],
342
+ &[aria-pressed='true'] {
343
+ border-color: var(--panel-system-accent);
344
+ background: var(--panel-system-accent);
345
+ color: var(--viewer-ui-color-button-primary-text, rgb(255 255 255));
346
+ }
347
+ `;
348
+ export const panelSystemSliderCss = css `
349
+ width: 100%;
350
+ height: 14px;
351
+ padding: 0;
352
+ display: block;
353
+ accent-color: var(--panel-system-accent);
354
+ appearance: none;
355
+ background: transparent;
356
+ cursor: pointer;
357
+
358
+ &::-webkit-slider-runnable-track {
359
+ height: 3px;
360
+ border-radius: 999px;
361
+ background: var(--panel-system-border-subtle);
362
+ }
363
+
364
+ &::-moz-range-track {
365
+ height: 3px;
366
+ border-radius: 999px;
367
+ background: var(--panel-system-border-subtle);
368
+ }
369
+
370
+ &::-webkit-slider-thumb {
371
+ appearance: none;
372
+ width: 10px;
373
+ height: 10px;
374
+ margin-top: -3.5px;
375
+ border: 0;
376
+ border-radius: 999px;
377
+ background: var(--panel-system-accent);
378
+ box-shadow: none;
379
+ }
380
+
381
+ &::-moz-range-thumb {
382
+ width: 10px;
383
+ height: 10px;
384
+ border: 0;
385
+ border-radius: 999px;
386
+ background: var(--panel-system-accent);
387
+ box-shadow: none;
388
+ }
389
+ `;
390
+ export const PanelSystemRoot = styled.div `
391
+ ${panelSystemBodyCss}
392
+ `;
393
+ export const PanelSystemSection = styled.section `
394
+ ${panelSystemSectionCss}
395
+ `;
396
+ export const PanelSystemTitle = styled.h1 `
397
+ ${panelSystemTitleCss}
398
+ `;
399
+ export const PanelSystemHeading = styled.h2 `
400
+ ${panelSystemSectionHeadingCss}
401
+ `;
402
+ export const PanelSystemSubheading = styled.h3 `
403
+ ${panelSystemSubheadingCss}
404
+ `;
405
+ export const PanelSystemText = styled.p `
406
+ ${panelSystemBodyTextCss}
407
+ `;
408
+ export const PanelSystemCard = styled.div `
409
+ ${panelSystemCardCss}
410
+ `;
411
+ export const PanelSystemMetricCard = styled.div `
412
+ ${panelSystemMetricCardCss}
413
+ `;
414
+ export const PanelSystemActionCard = styled.button `
415
+ ${panelSystemActionCardCss}
416
+ cursor: pointer;
417
+ transition: border-color 150ms ease, background 150ms ease, color 150ms ease;
418
+
419
+ &:hover {
420
+ border-color: var(--panel-system-accent);
421
+ background: color-mix(in srgb, var(--panel-system-accent) 14%, var(--panel-system-surface));
422
+ }
423
+ `;
424
+ export const PanelSystemButton = styled.button `
425
+ ${panelSystemControlCss}
426
+ cursor: pointer;
427
+ `;
428
+ export const PanelSystemToggleBar = styled.div `
429
+ ${panelSystemToggleBarCss}
430
+ `;
431
+ export const PanelSystemFeatureToggle = styled.button `
432
+ ${panelSystemFeatureToggleCss}
433
+ `;
434
+ export const PanelSystemSwitchToggle = styled.button `
435
+ ${panelSystemSwitchToggleCss}
436
+ `;
437
+ export const PanelSystemToggle = styled.button `
438
+ ${panelSystemToggleCss}
439
+ `;
440
+ export const PanelSystemInput = styled.input `
441
+ ${panelSystemInputCss}
442
+ `;
443
+ export const PanelSystemSelect = styled.select `
444
+ ${panelSystemInputCss}
445
+ `;
446
+ export const PanelSystemTextarea = styled.textarea `
447
+ ${panelSystemInputCss}
448
+ min-height: 96px;
449
+ resize: vertical;
450
+ `;
@@ -1 +1 @@
1
- {"version":3,"file":"PanelTabs.d.ts","sourceRoot":"","sources":["../src/PanelTabs.tsx"],"names":[],"mappings":"AA+CA,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,UAAU,cAAc;IACtB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,cAAc,2CAU9E"}
1
+ {"version":3,"file":"PanelTabs.d.ts","sourceRoot":"","sources":["../src/PanelTabs.tsx"],"names":[],"mappings":"AAkBA,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,UAAU,cAAc;IACtB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,cAAc,2CAiB9E"}
package/dist/PanelTabs.js CHANGED
@@ -1,43 +1,17 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import styled from 'styled-components';
4
+ import { panelSystemFeatureToggleCss, panelSystemToggleBarCss, panelSystemVarsCss } from './PanelSystem.js';
4
5
  const TabRow = styled.div `
5
- display: flex;
6
- gap: 8px;
7
- flex-wrap: nowrap;
8
- overflow-x: auto;
9
- padding-bottom: 10px;
10
- border-bottom: 1px solid var(--viewer-ui-color-panel-border, var(--brand-panel-border));
11
- margin-bottom: 6px;
6
+ ${panelSystemVarsCss}
7
+ ${panelSystemToggleBarCss}
8
+ justify-content: flex-start;
9
+ padding-bottom: 8px;
10
+ border-bottom: 1px solid var(--panel-system-border);
12
11
  `;
13
12
  const TabButton = styled.button `
14
- border-radius: 999px;
15
- padding: 8px 14px;
16
- font-size: 11px;
17
- font-weight: ${(props) => (props.$active ? 600 : 500)};
18
- text-transform: uppercase;
19
- letter-spacing: 0.08em;
20
- border: 1px solid
21
- ${(props) => props.$active
22
- ? 'var(--viewer-ui-color-button-secondary, var(--brand-primary))'
23
- : 'var(--viewer-ui-color-panel-border-subtle, var(--brand-panel-border))'};
24
- background: ${(props) => props.$active
25
- ? 'var(--viewer-ui-color-button-secondary, var(--brand-primary))'
26
- : 'var(--viewer-ui-color-tab-bg, transparent)'};
27
- color: ${(props) => props.$active
28
- ? 'var(--viewer-ui-color-text-strong, #ffffff)'
29
- : 'var(--viewer-ui-color-text-muted, var(--brand-text-secondary))'};
30
- cursor: pointer;
31
- transition: background 0.16s ease, color 0.16s ease, border-color 0.16s ease;
32
-
33
- &:hover {
34
- border-color: var(--viewer-ui-color-button-secondary, var(--brand-primary));
35
- background: ${(props) => props.$active
36
- ? 'var(--viewer-ui-color-button-secondary, var(--brand-primary))'
37
- : 'var(--viewer-ui-color-tab-bg-hover, rgba(47, 74, 60, 0.08))'};
38
- color: var(--viewer-ui-color-text-strong, var(--brand-text-primary));
39
- }
13
+ ${panelSystemFeatureToggleCss}
40
14
  `;
41
15
  export default function PanelTabs({ tabs, activeTab, onChange }) {
42
- return (_jsx(TabRow, { children: tabs.map((tab) => (_jsx(TabButton, { type: "button", "$active": tab.id === activeTab, onClick: () => onChange(tab.id), children: tab.label }, tab.id))) }));
16
+ return (_jsx(TabRow, { role: "tablist", "aria-label": "Composer panel", children: tabs.map((tab) => (_jsx(TabButton, { type: "button", role: "tab", "aria-selected": tab.id === activeTab, "data-active": tab.id === activeTab ? 'true' : 'false', onClick: () => onChange(tab.id), children: tab.label }, tab.id))) }));
43
17
  }
@@ -0,0 +1,10 @@
1
+ export type PanelToggleDockProps = {
2
+ topOffsetPx?: number;
3
+ placement?: 'fixed' | 'absolute';
4
+ collapsed?: boolean;
5
+ hidden?: boolean;
6
+ onToggle?: () => void;
7
+ label?: string;
8
+ };
9
+ export default function PanelToggleDock({ topOffsetPx, placement, collapsed, hidden, onToggle, label, }: PanelToggleDockProps): import("react/jsx-runtime").JSX.Element | null;
10
+ //# sourceMappingURL=PanelToggleDock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PanelToggleDock.d.ts","sourceRoot":"","sources":["../src/PanelToggleDock.tsx"],"names":[],"mappings":"AAmCA,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,WAAe,EACf,SAAmB,EACnB,SAAiB,EACjB,MAAc,EACd,QAAQ,EACR,KAAK,GACN,EAAE,oBAAoB,kDA2CtB"}
@@ -0,0 +1,40 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import styled from 'styled-components';
4
+ const Dock = styled.div `
5
+ position: ${(props) => props.$placement};
6
+ left: 50%;
7
+ top: ${(props) => `${Math.max(0, props.$topOffsetPx - 1)}px`};
8
+ transform: translateX(-50%);
9
+ z-index: 75;
10
+ display: inline-flex;
11
+ align-items: center;
12
+ gap: 8px;
13
+ `;
14
+ const LabelButton = styled.button `
15
+ border: 0;
16
+ padding: 0;
17
+ background: transparent;
18
+ cursor: pointer;
19
+ color: rgba(47, 74, 60, 0.72);
20
+ font-size: 11px;
21
+ letter-spacing: 0;
22
+ text-transform: none;
23
+ transition: color 0.16s ease;
24
+
25
+ &:hover {
26
+ color: rgba(20, 40, 29, 0.94);
27
+ }
28
+
29
+ @media (max-width: 900px) {
30
+ display: none;
31
+ }
32
+ `;
33
+ export default function PanelToggleDock({ topOffsetPx = 0, placement = 'fixed', collapsed = false, hidden = false, onToggle, label, }) {
34
+ if (hidden || !onToggle) {
35
+ return null;
36
+ }
37
+ const ariaLabel = collapsed ? 'Show panels' : 'Hide panels';
38
+ const visibleLabel = collapsed ? 'show panels' : (label ?? 'toggle panels');
39
+ return (_jsxs(Dock, { "$topOffsetPx": topOffsetPx, "$placement": placement, children: [_jsx("button", { type: "button", "aria-label": ariaLabel, title: label ?? ariaLabel, className: "collapse-toggle collapse-toggle--edge-top", onClick: onToggle, children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", children: collapsed ? (_jsx("path", { fillRule: "evenodd", d: "M5.23 7.21a.75.75 0 011.06.02L10 10.94l3.71-3.71a.75.75 0 111.06 1.06l-4.24 4.24a.75.75 0 01-1.06 0L5.25 8.27a.75.75 0 01-.02-1.06z", clipRule: "evenodd" })) : (_jsx("path", { fillRule: "evenodd", d: "M5.23 12.79a.75.75 0 001.06-.02L10 9.06l3.71 3.71a.75.75 0 001.06-1.06L10.53 7.47a.75.75 0 00-1.06 0L4.23 11.75a.75.75 0 001 1.04z", clipRule: "evenodd" })) }) }), _jsx(LabelButton, { type: "button", "aria-label": visibleLabel, title: visibleLabel, onClick: onToggle, children: visibleLabel })] }));
40
+ }
@@ -1,20 +1,21 @@
1
+ import type { PromptPackCatalogEntry } from '@treasuryspatial/render-kit';
1
2
  export type PromptPackChooserMode = string;
2
- export type PromptPackChooserCatalogEntry = {
3
- id: string;
4
- label: string;
5
- version?: string;
6
- description?: string;
7
- };
3
+ export type PromptPackChooserCatalogEntry = Pick<PromptPackCatalogEntry, 'id' | 'label' | 'description' | 'modes' | 'chooserLabel'>;
8
4
  type PromptPackChooserPanelProps = {
9
5
  modes?: PromptPackChooserMode[];
10
- labelsByMode: Record<string, string>;
11
- selectedByMode?: Partial<Record<PromptPackChooserMode, string>>;
12
- catalog: PromptPackChooserCatalogEntry[];
13
- onSelect: (mode: PromptPackChooserMode, packId: string) => void;
6
+ labelsByMode?: Record<string, string>;
7
+ noteByMode?: Partial<Record<PromptPackChooserMode, string>>;
8
+ activePackId?: string;
9
+ selectedPackId?: string;
10
+ catalog?: PromptPackChooserCatalogEntry[];
11
+ onSelect?: (packId: string) => void;
14
12
  onReset?: () => void;
13
+ status?: 'ready' | 'loading' | 'error';
14
+ error?: string | null;
15
15
  activeLabel: string;
16
16
  activeDescription?: string;
17
+ activeWarning?: boolean;
17
18
  };
18
- export default function PromptPackChooserPanel({ modes, labelsByMode, selectedByMode, catalog, onSelect, onReset, activeLabel, activeDescription, }: PromptPackChooserPanelProps): import("react/jsx-runtime").JSX.Element;
19
+ export default function PromptPackChooserPanel({ modes, labelsByMode, noteByMode, activePackId, selectedPackId, catalog, onSelect, onReset, status, error, activeLabel, activeDescription, activeWarning, }: PromptPackChooserPanelProps): import("react/jsx-runtime").JSX.Element;
19
20
  export {};
20
21
  //# sourceMappingURL=PromptPackChooserPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PromptPackChooserPanel.d.ts","sourceRoot":"","sources":["../src/PromptPackChooserPanel.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE3C,MAAM,MAAM,6BAA6B,GAAG;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,KAAK,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC;IAChE,OAAO,EAAE,6BAA6B,EAAE,CAAC;IACzC,QAAQ,EAAE,CAAC,IAAI,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AA6FF,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAC7C,KAAK,EACL,YAAY,EACZ,cAAmB,EACnB,OAAO,EACP,QAAQ,EACR,OAAO,EACP,WAAW,EACX,iBAAiB,GAClB,EAAE,2BAA2B,2CAqC7B"}
1
+ {"version":3,"file":"PromptPackChooserPanel.d.ts","sourceRoot":"","sources":["../src/PromptPackChooserPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAa1E,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAC3C,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAC9C,sBAAsB,EACtB,IAAI,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,GAAG,cAAc,CAC1D,CAAC;AA8CF,KAAK,2BAA2B,GAAG;IACjC,KAAK,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,6BAA6B,EAAE,CAAC;IAC1C,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AA4FF,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAC7C,KAAK,EACL,YAAiB,EACjB,UAAe,EACf,YAAY,EACZ,cAAmB,EACnB,OAAO,EACP,QAAQ,EACR,OAAO,EACP,MAAgB,EAChB,KAAK,EACL,WAAW,EACX,iBAAiB,EACjB,aAAqB,GACtB,EAAE,2BAA2B,2CAgF7B"}