@ramme-io/ui 4.0.0 → 4.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 (65) hide show
  1. package/README.md +158 -7
  2. package/dist/blocks/ai/Actions.js +2 -2
  3. package/dist/blocks/ai/PromptInput.js +6 -6
  4. package/dist/component-registry.js +386 -359
  5. package/dist/components/ai/AIChatThread/AIChatThread.js +81 -73
  6. package/dist/components/ai/ArchitectureReferenceCard/ArchitectureReferenceCard.d.ts +28 -0
  7. package/dist/components/ai/ArchitectureReferenceCard/ArchitectureReferenceCard.js +70 -0
  8. package/dist/components/ai/ArchitectureReferenceCard/index.d.ts +2 -0
  9. package/dist/components/ai/CounterpartyGraphCard/CounterpartyGraphCard.d.ts +30 -0
  10. package/dist/components/ai/CounterpartyGraphCard/CounterpartyGraphCard.js +82 -0
  11. package/dist/components/ai/CounterpartyGraphCard/index.d.ts +2 -0
  12. package/dist/components/ai/DivergenceMetricsCard/DivergenceMetricsCard.d.ts +29 -0
  13. package/dist/components/ai/DivergenceMetricsCard/DivergenceMetricsCard.js +69 -0
  14. package/dist/components/ai/DivergenceMetricsCard/index.d.ts +2 -0
  15. package/dist/components/ai/KeyInjectionOverlay.d.ts +10 -0
  16. package/dist/components/ai/KeyInjectionOverlay.js +11 -11
  17. package/dist/components/auth/AuthLayout.js +4 -4
  18. package/dist/components/data-display/CodeBlock.d.ts +33 -7
  19. package/dist/components/data-display/CodeBlock.js +134 -41
  20. package/dist/components/data-display/Table.js +8 -8
  21. package/dist/components/feedback/EmptyState.js +9 -9
  22. package/dist/components/feedback/ToastProvider.js +4 -4
  23. package/dist/components/forms/Checkbox.js +5 -5
  24. package/dist/components/forms/Radio.js +6 -6
  25. package/dist/components/forms/SegmentedControl.d.ts +1 -1
  26. package/dist/components/forms/SegmentedControl.js +28 -11
  27. package/dist/components/forms/Textarea.js +9 -9
  28. package/dist/components/forms/ToggleSwitch.js +9 -9
  29. package/dist/components/layout/AboutRamme.d.ts +8 -0
  30. package/dist/components/layout/Accordion.js +13 -13
  31. package/dist/components/layout/AppShell.js +7 -7
  32. package/dist/components/layout/DetailDrawer.js +2 -2
  33. package/dist/components/layout/Drawer.js +50 -51
  34. package/dist/components/layout/List.js +9 -9
  35. package/dist/components/layout/Modal.js +5 -5
  36. package/dist/components/layout/PageHeader.js +7 -7
  37. package/dist/components/layout/SectionHeader.js +4 -4
  38. package/dist/components/layout/SettingsContainer.d.ts +12 -0
  39. package/dist/components/layout/SettingsContainer.js +20 -18
  40. package/dist/components/layout/Sidebar.js +1 -1
  41. package/dist/components/layout/UserNav.d.ts +13 -0
  42. package/dist/components/layout/UserNav.js +17 -17
  43. package/dist/components/molecular/ConnectorOverlay.d.ts +12 -0
  44. package/dist/components/navigation/Breadcrumbs.js +8 -8
  45. package/dist/components/navigation/Menu.js +6 -6
  46. package/dist/components/navigation/MobileNav.js +1 -1
  47. package/dist/components/navigation/Pagination.js +46 -41
  48. package/dist/components/navigation/Stepper.js +17 -17
  49. package/dist/components/navigation/Tabs.js +12 -12
  50. package/dist/components/theme/ThemeLab.d.ts +7 -1
  51. package/dist/components/theme/ThemeLab.js +175 -154
  52. package/dist/contexts/ThemeContext.js +111 -82
  53. package/dist/data/mockData.d.ts +0 -3
  54. package/dist/index.css +1 -1
  55. package/dist/index.d.ts +8 -0
  56. package/dist/index.js +203 -185
  57. package/dist/lib/hooks/useBodyScrollLock.d.ts +27 -0
  58. package/dist/lib/hooks/useBodyScrollLock.js +18 -0
  59. package/dist/lib/theme/themeUtils.d.ts +21 -0
  60. package/dist/lib/theme/themeUtils.js +31 -17
  61. package/dist/wizardManifest.js +234 -9
  62. package/package.json +14 -15
  63. package/src/wizardManifest.ts +234 -9
  64. package/tailwind.preset.js +98 -10
  65. package/src/index.css +0 -335
package/dist/index.d.ts CHANGED
@@ -14,7 +14,14 @@ export * from './blocks/ai/ChatFAB';
14
14
  export { AIChatThread } from './components/ai/AIChatThread/AIChatThread';
15
15
  export type { AIChatThreadProps, ChatConnectionStatus } from './components/ai/AIChatThread/AIChatThread';
16
16
  export * from './components/ai/CompanyProfileCard';
17
+ export * from './components/ai/CounterpartyGraphCard';
18
+ export * from './components/ai/DivergenceMetricsCard';
19
+ export * from './components/ai/ArchitectureReferenceCard';
17
20
  export * from './components/ai/KeyInjectionOverlay';
21
+ export * from './components/ai/LiveQuoteCard';
22
+ export * from './components/ai/NewsSummaryCard';
23
+ export * from './components/ai/StockChart';
24
+ export * from './components/ai/TelemetryGraph';
18
25
  export * from './contexts/ThemeContext';
19
26
  export { AuthLayout } from './components/auth/AuthLayout';
20
27
  export { LoginPage } from './components/auth/LoginPage';
@@ -59,6 +66,7 @@ export { ToggleSwitch as Switch } from './components/forms/ToggleSwitch';
59
66
  export * from './lib/hooks/useDataFetch';
60
67
  export * from './lib/hooks/useChartTheme';
61
68
  export * from './lib/hooks/useMediaQuery';
69
+ export * from './lib/hooks/useBodyScrollLock';
62
70
  export * from './components/hardware/CircularDial';
63
71
  export * from './components/hardware/HardwareCommandButton';
64
72
  export * from './components/hardware/Sparkline';
package/dist/index.js CHANGED
@@ -5,20 +5,20 @@ import { mockChartData as f, mockTableData as x } from "./data/mockData.js";
5
5
  import { Loader as n } from "./blocks/ai/Loader.js";
6
6
  import { Actions as s, Suggestion as T } from "./blocks/ai/Actions.js";
7
7
  import { PromptInput as h } from "./blocks/ai/PromptInput.js";
8
- import { Message as C } from "./blocks/ai/Message.js";
9
- import { Conversation as S } from "./blocks/ai/Conversation.js";
8
+ import { Message as c } from "./blocks/ai/Message.js";
9
+ import { Conversation as u } from "./blocks/ai/Conversation.js";
10
10
  import { ChatFAB as b } from "./blocks/ai/ChatFAB.js";
11
11
  import { AIChatThread as A } from "./components/ai/AIChatThread/AIChatThread.js";
12
- import { KeyInjectionOverlay as I } from "./components/ai/KeyInjectionOverlay.js";
13
- import { TAY_DREAMBOAT_THEME as R, ThemeProvider as v, availableThemes as L, useTheme as M } from "./contexts/ThemeContext.js";
14
- import { AuthLayout as F } from "./components/auth/AuthLayout.js";
15
- import { LoginPage as y } from "./components/auth/LoginPage.js";
12
+ import { KeyInjectionOverlay as B } from "./components/ai/KeyInjectionOverlay.js";
13
+ import { TAY_DREAMBOAT_THEME as R, ThemeProvider as v, availableThemes as L, useTheme as E } from "./contexts/ThemeContext.js";
14
+ import { AuthLayout as y } from "./components/auth/AuthLayout.js";
15
+ import { LoginPage as F } from "./components/auth/LoginPage.js";
16
16
  import { SignupPage as O } from "./components/auth/SignupPage.js";
17
17
  import { DataTable as H } from "./components/data-display/DataTable.js";
18
- import { ActivityFeed as V } from "./components/data-display/ActivityFeed.js";
19
- import { Table as N } from "./components/data-display/Table.js";
20
- import { AreaChart as W } from "./components/data-display/AreaChart.js";
21
- import { BarChart as z } from "./components/data-display/BarChart.js";
18
+ import { ActivityFeed as N } from "./components/data-display/ActivityFeed.js";
19
+ import { Table as K } from "./components/data-display/Table.js";
20
+ import { AreaChart as Q } from "./components/data-display/AreaChart.js";
21
+ import { BarChart as Y } from "./components/data-display/BarChart.js";
22
22
  import { ChartWithTable as j } from "./components/data-display/ChartWithTable.js";
23
23
  import { LineChart as q } from "./components/data-display/LineChart.js";
24
24
  import { PieChart as Z } from "./components/data-display/PieChart.js";
@@ -30,246 +30,264 @@ import { StatusBadge as xr } from "./components/data-display/StatusBadge.js";
30
30
  import { Alert as nr } from "./components/feedback/Alert.js";
31
31
  import { EmptyState as sr } from "./components/feedback/EmptyState.js";
32
32
  import { Skeleton as dr } from "./components/feedback/Skeleton.js";
33
- import { Plan as gr } from "./components/feedback/Plan.js";
34
- import { TippyTooltip as cr } from "./components/feedback/TippyTooltip.js";
35
- import { Toast as ur } from "./components/feedback/Toast.js";
33
+ import { Plan as Cr } from "./components/feedback/Plan.js";
34
+ import { TippyTooltip as gr } from "./components/feedback/TippyTooltip.js";
35
+ import { Toast as Sr } from "./components/feedback/Toast.js";
36
36
  import { ToastProvider as Pr, useToast as Ar } from "./components/feedback/ToastProvider.js";
37
- import { Label as Ir } from "./components/forms/Label.js";
37
+ import { Label as Br } from "./components/forms/Label.js";
38
38
  import { ButtonGroup as Rr } from "./components/forms/ButtonGroup.js";
39
39
  import { Checkbox as Lr } from "./components/forms/Checkbox.js";
40
- import { ComboBox as Er } from "./components/forms/ComboBox.js";
40
+ import { ComboBox as Mr } from "./components/forms/ComboBox.js";
41
41
  import { DatePicker as wr } from "./components/forms/DatePicker.js";
42
42
  import { FileUpload as kr } from "./components/forms/FileUpload.js";
43
43
  import { FormTemplate as _r } from "./components/forms/FormTemplate.js";
44
44
  import { Input as Gr } from "./components/forms/Input.js";
45
- import { MultiSelect as Kr } from "./components/forms/MultiSelect.js";
45
+ import { MultiSelect as Vr } from "./components/forms/MultiSelect.js";
46
46
  import { Radio as Ur } from "./components/forms/Radio.js";
47
- import { SearchInput as Yr } from "./components/forms/SearchInput.js";
48
- import { SegmentedControl as Qr } from "./components/forms/SegmentedControl.js";
47
+ import { SearchInput as Wr } from "./components/forms/SearchInput.js";
48
+ import { SegmentedControl as zr } from "./components/forms/SegmentedControl.js";
49
49
  import { Select as Xr } from "./components/forms/Select.js";
50
50
  import { Textarea as Jr } from "./components/forms/Textarea.js";
51
51
  import { ToggleSwitch as $r, ToggleSwitch as ro } from "./components/forms/ToggleSwitch.js";
52
52
  import { useDataFetch as eo } from "./lib/hooks/useDataFetch.js";
53
53
  import { useChartTheme as mo } from "./lib/hooks/useChartTheme.js";
54
54
  import { MOBILE_BREAKPOINT_PX as po, MOBILE_BREAKPOINT_QUERY as fo, useIsMobile as xo, useMediaQuery as io } from "./lib/hooks/useMediaQuery.js";
55
- import { CircularDial as lo } from "./components/hardware/CircularDial.js";
56
- import { HardwareCommandButton as To } from "./components/hardware/HardwareCommandButton.js";
55
+ import { useBodyScrollLock as lo } from "./lib/hooks/useBodyScrollLock.js";
56
+ import { CircularDial as To } from "./components/hardware/CircularDial.js";
57
+ import { HardwareCommandButton as Co } from "./components/hardware/HardwareCommandButton.js";
57
58
  import { Sparkline as go } from "./components/hardware/Sparkline.js";
58
- import { EdgeInsightTerminal as co } from "./components/hardware/EdgeInsightTerminal.js";
59
- import { DeviceCard as uo } from "./blocks/iot/DeviceCard.js";
60
- import { WaterPumpControl as Po } from "./blocks/iot/WaterPumpControl.js";
61
- import { TelemetryLog as Do } from "./blocks/iot/TelemetryLog.js";
62
- import { DataCard as Bo } from "./components/molecular/DataCard.js";
63
- import { StateMatrix as vo } from "./components/molecular/StateMatrix.js";
64
- import { ConnectorOverlay as Mo } from "./components/molecular/ConnectorOverlay.js";
59
+ import { EdgeInsightTerminal as So } from "./components/hardware/EdgeInsightTerminal.js";
60
+ import { DeviceCard as Po } from "./blocks/iot/DeviceCard.js";
61
+ import { WaterPumpControl as Do } from "./blocks/iot/WaterPumpControl.js";
62
+ import { TelemetryLog as Io } from "./blocks/iot/TelemetryLog.js";
63
+ import { DataCard as vo } from "./components/molecular/DataCard.js";
64
+ import { StateMatrix as Eo } from "./components/molecular/StateMatrix.js";
65
+ import { ConnectorOverlay as yo } from "./components/molecular/ConnectorOverlay.js";
65
66
  import { AppShell as Fo } from "./components/layout/AppShell.js";
66
- import { SettingsContainer as yo } from "./components/layout/SettingsContainer.js";
67
- import { DetailDrawer as Oo } from "./components/layout/DetailDrawer.js";
68
- import { RammeInspectorTrigger as Ho } from "./components/layout/RammeInspectorTrigger.js";
69
- import { AboutRamme as Vo } from "./components/layout/AboutRamme.js";
70
- import { Header as No } from "./components/layout/Header.js";
71
- import { Toolbar as Wo } from "./components/layout/Toolbar.js";
72
- import { FilterPanel as zo } from "./components/layout/FilterPanel.js";
73
- import { Statusbar as jo } from "./components/layout/Statusbar.js";
74
- import { Accordion as qo, AccordionItem as Jo } from "./components/layout/Accordion.js";
75
- import { Card as $o, CardContent as re, CardDescription as oe, CardFooter as ee, CardHeader as te, CardLabel as me, CardTitle as ae } from "./components/layout/Card.js";
76
- import { Drawer as fe } from "./components/layout/Drawer.js";
77
- import { DefinitionDescription as ie, DefinitionList as ne, DefinitionTerm as le, List as se, ListItem as Te } from "./components/layout/List.js";
78
- import { Modal as he } from "./components/layout/Modal.js";
79
- import { Sidebar as Ce } from "./components/layout/Sidebar.js";
80
- import { ActionBar as Se } from "./components/layout/ActionBar.js";
81
- import { PageContainer as be } from "./components/layout/PageContainer.js";
82
- import { PageHeader as Ae } from "./components/layout/PageHeader.js";
83
- import { SectionHeader as Ie } from "./components/layout/SectionHeader.js";
84
- import { ButtonItem as Re, UserNav as ve } from "./components/layout/UserNav.js";
85
- import { CollectionLayout as Me } from "./components/layout/CollectionLayout.js";
67
+ import { SettingsContainer as Oo } from "./components/layout/SettingsContainer.js";
68
+ import { DetailDrawer as Ho } from "./components/layout/DetailDrawer.js";
69
+ import { RammeInspectorTrigger as No } from "./components/layout/RammeInspectorTrigger.js";
70
+ import { AboutRamme as Ko } from "./components/layout/AboutRamme.js";
71
+ import { Header as Qo } from "./components/layout/Header.js";
72
+ import { Toolbar as Yo } from "./components/layout/Toolbar.js";
73
+ import { FilterPanel as jo } from "./components/layout/FilterPanel.js";
74
+ import { Statusbar as qo } from "./components/layout/Statusbar.js";
75
+ import { Accordion as Zo, AccordionItem as $o } from "./components/layout/Accordion.js";
76
+ import { Card as oe, CardContent as ee, CardDescription as te, CardFooter as me, CardHeader as ae, CardLabel as pe, CardTitle as fe } from "./components/layout/Card.js";
77
+ import { Drawer as ie } from "./components/layout/Drawer.js";
78
+ import { DefinitionDescription as le, DefinitionList as se, DefinitionTerm as Te, List as de, ListItem as he } from "./components/layout/List.js";
79
+ import { Modal as ce } from "./components/layout/Modal.js";
80
+ import { Sidebar as ue } from "./components/layout/Sidebar.js";
81
+ import { ActionBar as be } from "./components/layout/ActionBar.js";
82
+ import { PageContainer as Ae } from "./components/layout/PageContainer.js";
83
+ import { PageHeader as Be } from "./components/layout/PageHeader.js";
84
+ import { SectionHeader as Re } from "./components/layout/SectionHeader.js";
85
+ import { ButtonItem as Le, UserNav as Ee } from "./components/layout/UserNav.js";
86
+ import { CollectionLayout as ye } from "./components/layout/CollectionLayout.js";
86
87
  import { DenseMetricRibbon as Fe } from "./components/layout/DenseMetricRibbon.js";
87
- import { BreadcrumbItem as ye, Breadcrumbs as ke } from "./components/navigation/Breadcrumbs.js";
88
- import { Menu as _e, MenuDivider as He, MenuItem as Ge } from "./components/navigation/Menu.js";
89
- import { MobileNav as Ke } from "./components/navigation/MobileNav.js";
90
- import { Pagination as Ue } from "./components/navigation/Pagination.js";
91
- import { Stepper as Ye } from "./components/navigation/Stepper.js";
92
- import { TabPanel as Qe, Tabs as je } from "./components/navigation/Tabs.js";
93
- import { FinancialAssetSchema as qe, WatchlistEngine as Je } from "./blocks/engines/WatchlistEngine.js";
94
- import { Avatar as $e } from "./components/ui/Avatar.js";
95
- import { Badge as ot, badgeVariants as et } from "./components/ui/Badge.js";
96
- import { Button as mt, buttonVariants as at } from "./components/ui/Button.js";
97
- import { Icon as ft } from "./components/ui/Icon.js";
98
- import { BrandLogo as it } from "./components/ui/BrandLogo.js";
99
- import { cn as lt } from "./utils/cn.js";
100
- import { formatValue as Tt } from "./lib/formatters.js";
101
- import { ThemeSynthesizer as ht } from "./components/theme/ThemeSynthesizer.js";
102
- import { AestheticProfileGrid as Ct } from "./components/theme/AestheticProfileGrid.js";
103
- import { FineTuningControls as St } from "./components/theme/FineTuningControls.js";
104
- import { PaletteSwatch as bt, ThemeLivePreview as Pt } from "./components/theme/ThemeLivePreview.js";
105
- import { ThemeSettings as Dt } from "./components/theme/ThemeSettings.js";
106
- import { ThemeLab as Bt } from "./components/theme/ThemeLab.js";
107
- import { AESTHETIC_PROFILES as vt, generateFromProfile as Lt, generateFromPrompt as Mt, generateRandom as Et, hslToCssString as Ft, hslToRgb as wt, hslToRgbString as yt, lightToDark as kt, paletteToRgbVars as Ot } from "./lib/theme/ThemeGenerator.logic.js";
108
- import { applyThemeToDom as Ht, generateRandomTheme as Gt, getContrastColor as Vt, hexToRgbTriplet as Kt, loadGoogleFont as Nt, randomRgb as Ut, tokensToVars as Wt } from "./lib/theme/themeUtils.js";
109
- import { generateThemeFromPrompt as zt } from "./lib/theme/themeAgent.js";
110
- import { CompanyProfileCard as jt } from "./components/ai/CompanyProfileCard/CompanyProfileCard.js";
111
- import { ShowroomContainer as qt } from "./components/showroom/ShowroomContainer.js";
112
- import { ShowroomSidebar as Zt } from "./components/showroom/ShowroomSidebar.js";
113
- import { ShowroomCanvas as rm } from "./components/showroom/ShowroomCanvas.js";
114
- import { SkuBadge as em } from "./components/showroom/SkuBadge.js";
115
- import { resolvePreview as mm } from "./components/showroom/ShowroomRenderer.js";
88
+ import { BreadcrumbItem as Oe, Breadcrumbs as _e } from "./components/navigation/Breadcrumbs.js";
89
+ import { Menu as Ge, MenuDivider as Ne, MenuItem as Ve } from "./components/navigation/Menu.js";
90
+ import { MobileNav as Ue } from "./components/navigation/MobileNav.js";
91
+ import { Pagination as We } from "./components/navigation/Pagination.js";
92
+ import { Stepper as ze } from "./components/navigation/Stepper.js";
93
+ import { TabPanel as Xe, Tabs as qe } from "./components/navigation/Tabs.js";
94
+ import { FinancialAssetSchema as Ze, WatchlistEngine as $e } from "./blocks/engines/WatchlistEngine.js";
95
+ import { Avatar as ot } from "./components/ui/Avatar.js";
96
+ import { Badge as tt, badgeVariants as mt } from "./components/ui/Badge.js";
97
+ import { Button as pt, buttonVariants as ft } from "./components/ui/Button.js";
98
+ import { Icon as it } from "./components/ui/Icon.js";
99
+ import { BrandLogo as lt } from "./components/ui/BrandLogo.js";
100
+ import { cn as Tt } from "./utils/cn.js";
101
+ import { formatValue as ht } from "./lib/formatters.js";
102
+ import { ThemeSynthesizer as ct } from "./components/theme/ThemeSynthesizer.js";
103
+ import { AestheticProfileGrid as ut } from "./components/theme/AestheticProfileGrid.js";
104
+ import { FineTuningControls as bt } from "./components/theme/FineTuningControls.js";
105
+ import { PaletteSwatch as At, ThemeLivePreview as Dt } from "./components/theme/ThemeLivePreview.js";
106
+ import { ThemeSettings as It } from "./components/theme/ThemeSettings.js";
107
+ import { ThemeLab as vt } from "./components/theme/ThemeLab.js";
108
+ import { AESTHETIC_PROFILES as Et, generateFromProfile as Mt, generateFromPrompt as yt, generateRandom as wt, hslToCssString as Ft, hslToRgb as kt, hslToRgbString as Ot, lightToDark as _t, paletteToRgbVars as Ht } from "./lib/theme/ThemeGenerator.logic.js";
109
+ import { THEME_TOKEN_VARS as Nt, applyThemeToDom as Vt, generateRandomTheme as Kt, getContrastColor as Ut, hexToRgbTriplet as Qt, isCustomTheme as Wt, loadGoogleFont as Yt, randomRgb as zt, tokensToVars as jt } from "./lib/theme/themeUtils.js";
110
+ import { generateThemeFromPrompt as qt } from "./lib/theme/themeAgent.js";
111
+ import { CompanyProfileCard as Zt } from "./components/ai/CompanyProfileCard/CompanyProfileCard.js";
112
+ import { CounterpartyGraphCard as rm } from "./components/ai/CounterpartyGraphCard/CounterpartyGraphCard.js";
113
+ import { DivergenceMetricsCard as em } from "./components/ai/DivergenceMetricsCard/DivergenceMetricsCard.js";
114
+ import { ArchitectureReferenceCard as mm } from "./components/ai/ArchitectureReferenceCard/ArchitectureReferenceCard.js";
115
+ import { LiveQuoteCard as pm } from "./components/ai/LiveQuoteCard/LiveQuoteCard.js";
116
+ import { NewsSummaryCard as xm } from "./components/ai/NewsSummaryCard/NewsSummaryCard.js";
117
+ import { StockChart as nm } from "./components/ai/StockChart/StockChart.js";
118
+ import { TelemetryGraph as sm } from "./components/ai/TelemetryGraph/TelemetryGraph.js";
119
+ import { ShowroomContainer as dm } from "./components/showroom/ShowroomContainer.js";
120
+ import { ShowroomSidebar as Cm } from "./components/showroom/ShowroomSidebar.js";
121
+ import { ShowroomCanvas as gm } from "./components/showroom/ShowroomCanvas.js";
122
+ import { SkuBadge as Sm } from "./components/showroom/SkuBadge.js";
123
+ import { resolvePreview as Pm } from "./components/showroom/ShowroomRenderer.js";
116
124
  export {
117
- vt as AESTHETIC_PROFILES,
125
+ Et as AESTHETIC_PROFILES,
118
126
  A as AIChatThread,
119
127
  a as AUTO_REGISTRY,
120
- Vo as AboutRamme,
121
- qo as Accordion,
122
- Jo as AccordionItem,
123
- Se as ActionBar,
128
+ Ko as AboutRamme,
129
+ Zo as Accordion,
130
+ $o as AccordionItem,
131
+ be as ActionBar,
124
132
  s as Actions,
125
- V as ActivityFeed,
126
- Ct as AestheticProfileGrid,
133
+ N as ActivityFeed,
134
+ ut as AestheticProfileGrid,
127
135
  nr as Alert,
128
136
  Fo as AppShell,
129
- W as AreaChart,
130
- F as AuthLayout,
131
- $e as Avatar,
132
- ot as Badge,
133
- z as BarChart,
134
- it as BrandLogo,
135
- ye as BreadcrumbItem,
136
- ke as Breadcrumbs,
137
- mt as Button,
137
+ mm as ArchitectureReferenceCard,
138
+ Q as AreaChart,
139
+ y as AuthLayout,
140
+ ot as Avatar,
141
+ tt as Badge,
142
+ Y as BarChart,
143
+ lt as BrandLogo,
144
+ Oe as BreadcrumbItem,
145
+ _e as Breadcrumbs,
146
+ pt as Button,
138
147
  Rr as ButtonGroup,
139
- Re as ButtonItem,
140
- $o as Card,
141
- re as CardContent,
142
- oe as CardDescription,
143
- ee as CardFooter,
144
- te as CardHeader,
145
- me as CardLabel,
146
- ae as CardTitle,
148
+ Le as ButtonItem,
149
+ oe as Card,
150
+ ee as CardContent,
151
+ te as CardDescription,
152
+ me as CardFooter,
153
+ ae as CardHeader,
154
+ pe as CardLabel,
155
+ fe as CardTitle,
147
156
  j as ChartWithTable,
148
157
  b as ChatFAB,
149
158
  Lr as Checkbox,
150
- lo as CircularDial,
159
+ To as CircularDial,
151
160
  er as CodeBlock,
152
- Me as CollectionLayout,
153
- Er as ComboBox,
154
- jt as CompanyProfileCard,
155
- Mo as ConnectorOverlay,
156
- S as Conversation,
157
- Bo as DataCard,
161
+ ye as CollectionLayout,
162
+ Mr as ComboBox,
163
+ Zt as CompanyProfileCard,
164
+ yo as ConnectorOverlay,
165
+ u as Conversation,
166
+ rm as CounterpartyGraphCard,
167
+ vo as DataCard,
158
168
  H as DataTable,
159
169
  wr as DatePicker,
160
- ie as DefinitionDescription,
161
- ne as DefinitionList,
162
- le as DefinitionTerm,
170
+ le as DefinitionDescription,
171
+ se as DefinitionList,
172
+ Te as DefinitionTerm,
163
173
  Fe as DenseMetricRibbon,
164
- Oo as DetailDrawer,
165
- uo as DeviceCard,
166
- fe as Drawer,
167
- co as EdgeInsightTerminal,
174
+ Ho as DetailDrawer,
175
+ Po as DeviceCard,
176
+ em as DivergenceMetricsCard,
177
+ ie as Drawer,
178
+ So as EdgeInsightTerminal,
168
179
  sr as EmptyState,
169
180
  kr as FileUpload,
170
- zo as FilterPanel,
171
- qe as FinancialAssetSchema,
172
- St as FineTuningControls,
181
+ jo as FilterPanel,
182
+ Ze as FinancialAssetSchema,
183
+ bt as FineTuningControls,
173
184
  _r as FormTemplate,
174
- To as HardwareCommandButton,
175
- No as Header,
176
- ft as Icon,
185
+ Co as HardwareCommandButton,
186
+ Qo as Header,
187
+ it as Icon,
177
188
  Gr as Input,
178
- I as KeyInjectionOverlay,
189
+ B as KeyInjectionOverlay,
179
190
  pr as KpiGrid,
180
- Ir as Label,
191
+ Br as Label,
181
192
  q as LineChart,
182
- se as List,
183
- Te as ListItem,
193
+ de as List,
194
+ he as ListItem,
195
+ pm as LiveQuoteCard,
184
196
  n as Loader,
185
- y as LoginPage,
197
+ F as LoginPage,
186
198
  po as MOBILE_BREAKPOINT_PX,
187
199
  fo as MOBILE_BREAKPOINT_QUERY,
188
- _e as Menu,
189
- He as MenuDivider,
190
- Ge as MenuItem,
191
- C as Message,
192
- Ke as MobileNav,
193
- he as Modal,
194
- Kr as MultiSelect,
195
- be as PageContainer,
196
- Ae as PageHeader,
197
- Ue as Pagination,
198
- bt as PaletteSwatch,
200
+ Ge as Menu,
201
+ Ne as MenuDivider,
202
+ Ve as MenuItem,
203
+ c as Message,
204
+ Ue as MobileNav,
205
+ ce as Modal,
206
+ Vr as MultiSelect,
207
+ xm as NewsSummaryCard,
208
+ Ae as PageContainer,
209
+ Be as PageHeader,
210
+ We as Pagination,
211
+ At as PaletteSwatch,
199
212
  Z as PieChart,
200
- gr as Plan,
213
+ Cr as Plan,
201
214
  h as PromptInput,
202
215
  Ur as Radio,
203
- Ho as RammeInspectorTrigger,
216
+ No as RammeInspectorTrigger,
204
217
  rr as ScatterChart,
205
- Yr as SearchInput,
206
- Ie as SectionHeader,
207
- Qr as SegmentedControl,
218
+ Wr as SearchInput,
219
+ Re as SectionHeader,
220
+ zr as SegmentedControl,
208
221
  Xr as Select,
209
- yo as SettingsContainer,
210
- rm as ShowroomCanvas,
211
- qt as ShowroomContainer,
212
- Zt as ShowroomSidebar,
213
- Ce as Sidebar,
222
+ Oo as SettingsContainer,
223
+ gm as ShowroomCanvas,
224
+ dm as ShowroomContainer,
225
+ Cm as ShowroomSidebar,
226
+ ue as Sidebar,
214
227
  O as SignupPage,
215
228
  dr as Skeleton,
216
- em as SkuBadge,
229
+ Sm as SkuBadge,
217
230
  go as Sparkline,
218
231
  mr as StatCard,
219
- vo as StateMatrix,
232
+ Eo as StateMatrix,
220
233
  xr as StatusBadge,
221
- jo as Statusbar,
222
- Ye as Stepper,
234
+ qo as Statusbar,
235
+ ze as Stepper,
236
+ nm as StockChart,
223
237
  T as Suggestion,
224
238
  $r as Switch,
225
239
  R as TAY_DREAMBOAT_THEME,
226
- Qe as TabPanel,
227
- N as Table,
228
- je as Tabs,
229
- Do as TelemetryLog,
240
+ Nt as THEME_TOKEN_VARS,
241
+ Xe as TabPanel,
242
+ K as Table,
243
+ qe as Tabs,
244
+ sm as TelemetryGraph,
245
+ Io as TelemetryLog,
230
246
  Jr as Textarea,
231
- Bt as ThemeLab,
232
- Pt as ThemeLivePreview,
247
+ vt as ThemeLab,
248
+ Dt as ThemeLivePreview,
233
249
  v as ThemeProvider,
234
- Dt as ThemeSettings,
235
- ht as ThemeSynthesizer,
236
- cr as TippyTooltip,
237
- ur as Toast,
250
+ It as ThemeSettings,
251
+ ct as ThemeSynthesizer,
252
+ gr as TippyTooltip,
253
+ Sr as Toast,
238
254
  Pr as ToastProvider,
239
255
  ro as ToggleSwitch,
240
- Wo as Toolbar,
241
- ve as UserNav,
242
- Je as WatchlistEngine,
243
- Po as WaterPumpControl,
244
- Ht as applyThemeToDom,
256
+ Yo as Toolbar,
257
+ Ee as UserNav,
258
+ $e as WatchlistEngine,
259
+ Do as WaterPumpControl,
260
+ Vt as applyThemeToDom,
245
261
  L as availableThemes,
246
- et as badgeVariants,
247
- at as buttonVariants,
248
- lt as cn,
249
- Tt as formatValue,
250
- Lt as generateFromProfile,
251
- Mt as generateFromPrompt,
252
- Et as generateRandom,
253
- Gt as generateRandomTheme,
254
- zt as generateThemeFromPrompt,
255
- Vt as getContrastColor,
256
- Kt as hexToRgbTriplet,
262
+ mt as badgeVariants,
263
+ ft as buttonVariants,
264
+ Tt as cn,
265
+ ht as formatValue,
266
+ Mt as generateFromProfile,
267
+ yt as generateFromPrompt,
268
+ wt as generateRandom,
269
+ Kt as generateRandomTheme,
270
+ qt as generateThemeFromPrompt,
271
+ Ut as getContrastColor,
272
+ Qt as hexToRgbTriplet,
257
273
  Ft as hslToCssString,
258
- wt as hslToRgb,
259
- yt as hslToRgbString,
260
- kt as lightToDark,
261
- Nt as loadGoogleFont,
274
+ kt as hslToRgb,
275
+ Ot as hslToRgbString,
276
+ Wt as isCustomTheme,
277
+ _t as lightToDark,
278
+ Yt as loadGoogleFont,
262
279
  f as mockChartData,
263
280
  x as mockTableData,
264
- Ot as paletteToRgbVars,
265
- Ut as randomRgb,
266
- mm as resolvePreview,
267
- Wt as tokensToVars,
281
+ Ht as paletteToRgbVars,
282
+ zt as randomRgb,
283
+ Pm as resolvePreview,
284
+ jt as tokensToVars,
285
+ lo as useBodyScrollLock,
268
286
  mo as useChartTheme,
269
287
  eo as useDataFetch,
270
288
  xo as useIsMobile,
271
289
  io as useMediaQuery,
272
- M as useTheme,
290
+ E as useTheme,
273
291
  Ar as useToast,
274
292
  t as wizardManifest
275
293
  };
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Locks background scrolling while an overlay is open, without moving the page.
3
+ *
4
+ * ZERO JANK (rule 6): a scroll lock must not shift the page or lose the
5
+ * reader's position. `overflow: hidden` on the body alone has two visible
6
+ * failure modes:
7
+ *
8
+ * - On desktop it removes the scrollbar, so the whole page jumps sideways by
9
+ * the scrollbar's width the instant the overlay opens. `scrollbar-gutter:
10
+ * stable` on <html> covers the common case, but only under a fine pointer.
11
+ * - On iOS Safari the body stops being the scroll container and the offset is
12
+ * discarded, so closing the overlay drops the reader at the top of the page.
13
+ *
14
+ * Pinning the body at a negative offset preserves the position, and restoring
15
+ * it scrolls back to where the reader was.
16
+ *
17
+ * Extracted from Drawer, which had the only correct implementation in the repo;
18
+ * ShowroomPage had hand-rolled a second one that set `overflow` alone and lost
19
+ * the position on every close. Reach for this rather than writing a third.
20
+ *
21
+ * @param isLocked - true while the overlay is open.
22
+ *
23
+ * @example
24
+ * const [isOpen, setIsOpen] = useState(false);
25
+ * useBodyScrollLock(isOpen);
26
+ */
27
+ export declare function useBodyScrollLock(isLocked: boolean): void;
@@ -0,0 +1,18 @@
1
+ import { useEffect as s } from "react";
2
+ function r(e) {
3
+ s(() => {
4
+ if (!e) return;
5
+ const { body: o } = document, l = window.scrollY, t = {
6
+ position: o.style.position,
7
+ top: o.style.top,
8
+ width: o.style.width,
9
+ overflow: o.style.overflow
10
+ };
11
+ return o.style.position = "fixed", o.style.top = `-${l}px`, o.style.width = "100%", o.style.overflow = "hidden", () => {
12
+ o.style.position = t.position, o.style.top = t.top, o.style.width = t.width, o.style.overflow = t.overflow, window.scrollTo(0, l);
13
+ };
14
+ }, [e]);
15
+ }
16
+ export {
17
+ r as useBodyScrollLock
18
+ };
@@ -1,3 +1,4 @@
1
+ import { DEFAULT_THEME_TOKENS } from '@ramme-io/shared';
1
2
  /**
2
3
  * Advanced Contrast Guard
3
4
  * Adjusts for perceived darkness (like scanline overlays)
@@ -14,6 +15,26 @@ export declare const loadGoogleFont: (headingFont: string, bodyFont: string) =>
14
15
  * @example hexToRgbTriplet('#0D6EFD') → '13 110 253'
15
16
  */
16
17
  export declare const hexToRgbTriplet: (hex: string) => string;
18
+ /**
19
+ * Every CSS variable `tokensToVars` writes.
20
+ *
21
+ * Exported so the code that removes them cannot drift from the code that adds
22
+ * them — RULE-005 asks for symmetrical purging, and these six were injected on
23
+ * to documentElement.style and never removed by anything.
24
+ */
25
+ export declare const THEME_TOKEN_VARS: readonly ["--app-primary-color", "--app-secondary-color", "--app-success-color", "--app-warning-color", "--app-danger-color", "--app-border-radius-md"];
26
+ /**
27
+ * Has the visitor actually themed anything?
28
+ *
29
+ * `activeTheme`/`savedTheme` are always populated — they are seeded with
30
+ * DEFAULT_THEME_TOKENS — so their presence proves nothing. Only a value that
31
+ * differs from those defaults means a real choice was made.
32
+ *
33
+ * Every place that decides whether to paint the user's layer must agree, or the
34
+ * layers fight: injecting unconditionally painted the framework's defaults over
35
+ * the app's own theme for every first-time visitor.
36
+ */
37
+ export declare const isCustomTheme: (tokens: Partial<Record<keyof typeof DEFAULT_THEME_TOKENS, string>> | null | undefined) => boolean;
17
38
  export declare const tokensToVars: (t: Partial<{
18
39
  primary: string;
19
40
  neutral: string;