@ably/ui 17.10.1-dev.26bd7a31 → 17.10.1-dev.5f8eeef5

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 (39) hide show
  1. package/AGENTS.md +197 -0
  2. package/core/Header/HeaderLinks.js +1 -1
  3. package/core/Header/HeaderLinks.js.map +1 -1
  4. package/core/Icon/components/icon-product-chat-mono.js +1 -1
  5. package/core/Icon/components/icon-product-chat-mono.js.map +1 -1
  6. package/core/Icon/components/icon-product-liveobjects-mono.js +1 -1
  7. package/core/Icon/components/icon-product-liveobjects-mono.js.map +1 -1
  8. package/core/Icon/components/icon-product-livesync-mono.js +1 -1
  9. package/core/Icon/components/icon-product-livesync-mono.js.map +1 -1
  10. package/core/Icon/components/icon-product-pubsub-mono.js +1 -1
  11. package/core/Icon/components/icon-product-pubsub-mono.js.map +1 -1
  12. package/core/Icon/components/icon-product-spaces-mono.js +1 -1
  13. package/core/Icon/components/icon-product-spaces-mono.js.map +1 -1
  14. package/core/Meganav/MeganavCustomerStories.js +1 -1
  15. package/core/Meganav/MeganavCustomerStories.js.map +1 -1
  16. package/core/Meganav/MeganavMobile.js +1 -1
  17. package/core/Meganav/MeganavMobile.js.map +1 -1
  18. package/core/Meganav/MeganavPanel.js +1 -1
  19. package/core/Meganav/MeganavPanel.js.map +1 -1
  20. package/core/Meganav/MeganavPanelItemLinks.js +1 -1
  21. package/core/Meganav/MeganavPanelItemLinks.js.map +1 -1
  22. package/core/Meganav/data.js +1 -1
  23. package/core/Meganav/data.js.map +1 -1
  24. package/core/Meganav/images/cust-logo-doxy-dark.png +0 -0
  25. package/core/Meganav/images/cust-logo-doxy-light.png +0 -0
  26. package/core/Meganav/utils/getMenuItemsForHeader.js +1 -1
  27. package/core/Meganav/utils/getMenuItemsForHeader.js.map +1 -1
  28. package/core/ProductTile/ProductIcon.js +1 -1
  29. package/core/ProductTile/ProductIcon.js.map +1 -1
  30. package/core/icons/product/icon-product-chat-mono.svg +1 -1
  31. package/core/icons/product/icon-product-liveobjects-mono.svg +1 -4
  32. package/core/icons/product/icon-product-livesync-mono.svg +4 -4
  33. package/core/icons/product/icon-product-pubsub-mono.svg +1 -1
  34. package/core/icons/product/icon-product-spaces-mono.svg +1 -1
  35. package/core/remote-blogs-posts.js.map +1 -1
  36. package/core/remote-session-data.js.map +1 -1
  37. package/core/sprites-product.svg +1 -1
  38. package/index.d.ts +2 -1
  39. package/package.json +5 -3
package/AGENTS.md ADDED
@@ -0,0 +1,197 @@
1
+ # Agent Development Guide
2
+
3
+ This file is not necessarily for people, the intended audience is automated agents.
4
+
5
+ ## Other references
6
+
7
+ Consider the content of `README.md` as well, it contains technical information
8
+ used by contributors to this project, as well as consumers of this project
9
+
10
+ ## Consumers
11
+
12
+ This project is intended to primarily be consumed by the Ably website, voltaire
13
+ & docs projects. It is distributed via NPM as the `@ably/ui` package.
14
+
15
+ ## Build & Test Commands
16
+
17
+ - `pnpm build` - Build the library (prebuild, icons, swc, tsc, cleanup)
18
+ - `pnpm test` - Run all tests with Vitest
19
+ - `pnpm test -- src/core/insights/index.test.ts` - Run a single test file
20
+ - `pnpm lint` - Run ESLint on all files
21
+ - `pnpm format:check` - Check formatting with Prettier
22
+ - `pnpm format:write` - Auto-format all files with Prettier
23
+ - `pnpm storybook` - Start Storybook dev server on port 6006
24
+ - `pnpm start` - Start Vite dev server on port 5000
25
+
26
+ ## Code Style
27
+
28
+ - **Language**: TypeScript with strict mode enabled
29
+ - **React**: Use functional components with hooks; React 18.x
30
+ - **Imports**: Default export for main component, named exports for types/utils
31
+ - **Naming**: PascalCase for components/types, camelCase for functions/variables,
32
+ kebab-case for files
33
+ - **Types**: Define prop types as `ComponentNameProps`, use `PropsWithChildren<T>`
34
+ when needed
35
+ - **Styling**: Tailwind 3.4.
36
+ - **Utility**: Use `cn()` from `./src/core/utils/cn` for className merging (clsx
37
+ & tailwind-merge)
38
+ - **Formatting**: Prettier defaults (no config = defaults), 2-space indent
39
+ - **Error Handling**: Wrap external service calls in try-catch, log with logger module
40
+ - **Comments**: JSDoc for props, inline comments for complex logic
41
+
42
+ Keep emojis in the code to a minimum, only introduce them if there is precedent
43
+ in the file you're working on.
44
+
45
+ Comments and commit messages should not include statements like "local tests pass",
46
+ this is a given for how we work.
47
+
48
+ ## Development
49
+
50
+ - Run `pnpm lint` & `pnpm format:write` on files after making changes, we lint
51
+ files in CI and don't want preventable failures. `pnpm lint:fix` should also
52
+ apply our formatting rules while trying to fix most things for you
53
+ - Run tests with `pnpm test` after making file changes
54
+
55
+ ## Styling Guide
56
+
57
+ ### Color Palettes
58
+
59
+ The design system uses semantic color palettes defined in `src/core/styles/properties.css`
60
+ and configured for Tailwind in `tailwind.config.js`. Each palette has a different
61
+ number of color values:
62
+
63
+ - **Neutral**: 000, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300 (14 values)
64
+ - **Orange**: 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100 (11 values)
65
+ - **Yellow**: 100, 200, 300, 400, 500, 600, 700, 800, 900 (9 values)
66
+ - **Green**: 100, 200, 300, 400, 500, 600, 700, 800, 900 (9 values)
67
+ - **Blue**: 100, 200, 300, 400, 500, 600, 700, 800, 900 (9 values)
68
+ - **Violet**: 100, 200, 300, 400, 500, 600, 700, 800, 900 (9 values)
69
+ - **Pink**: 100, 200, 300, 400, 500, 600, 700, 800, 900 (9 values)
70
+
71
+ ### Interactive Element Styling Patterns
72
+
73
+ When developing components with @ably/ui, **always** use Tailwind classes following
74
+ these established patterns to ensure consistent interactive behavior across light
75
+ and dark modes:
76
+
77
+ #### Dark Mode Mirroring
78
+
79
+ For any given color, add a dark mode class that mirrors it across the palette.
80
+ Lower values (lighter colors) in light mode should map to higher values (darker
81
+ colors) in dark mode, and vice versa.
82
+
83
+ **Examples:**
84
+
85
+ - `bg-neutral-100` pairs with `dark:bg-neutral-1200`
86
+ - `bg-neutral-200` pairs with `dark:bg-neutral-1100`
87
+ - `bg-neutral-1200` pairs with `dark:bg-neutral-100`
88
+ - `text-neutral-1300` pairs with `dark:text-neutral-000`
89
+ - `bg-orange-200` pairs with `dark:bg-orange-900` (orange has 11 values: 200 + 900 = 1100)
90
+ - `bg-blue-300` pairs with `dark:bg-blue-700` (blue has 9 values: 300 + 700 = 1000)
91
+
92
+ The sum of mirrored color numbers should equal the total palette range. Different
93
+ palettes have different ranges, so calculate mirrors accordingly:
94
+
95
+ - Neutral (000-1300): `light + dark = 1300`
96
+ - Orange (100-1100): `light + dark = 1200`
97
+ - Secondary colors (100-900): `light + dark = 1000`
98
+
99
+ #### Hover States
100
+
101
+ Use the **next color value** along the palette for hover states:
102
+
103
+ - `bg-neutral-100` → `hover:bg-neutral-200`
104
+ - `bg-neutral-200` → `hover:bg-neutral-300`
105
+ - `bg-orange-600` → `hover:bg-orange-700`
106
+
107
+ Apply this pattern to both light and dark mode classes:
108
+
109
+ ```
110
+ bg-neutral-200 hover:bg-neutral-300
111
+ dark:bg-neutral-1100 dark:hover:bg-neutral-1000
112
+ ```
113
+
114
+ #### Active States
115
+
116
+ Use **two color values** along the palette for active/pressed states:
117
+
118
+ - `bg-neutral-100` → `active:bg-neutral-300`
119
+ - `bg-neutral-200` → `active:bg-neutral-400`
120
+ - `bg-orange-600` → `active:bg-orange-800`
121
+
122
+ Apply to both modes:
123
+
124
+ ```
125
+ bg-neutral-200 hover:bg-neutral-300 active:bg-neutral-400
126
+ dark:bg-neutral-1100 dark:hover:bg-neutral-1000 dark:active:bg-neutral-900
127
+ ```
128
+
129
+ #### Focus Styles
130
+
131
+ Add the `focus-base` class to all interactive elements (buttons, links, inputs,
132
+ selects, etc.). This class is defined in `src/core/styles/utils.css` and provides
133
+ consistent focus styling with an accessible outline:
134
+
135
+ ```css
136
+ .focus-base {
137
+ @apply focus:outline-none focus-visible:outline-4 focus-visible:outline-offset-0 focus-visible:outline-gui-focus;
138
+ }
139
+ ```
140
+
141
+ #### Transitions
142
+
143
+ Add `transition-colors` to interactive elements unless a higher-specificity
144
+ `transition` class is already present (e.g., `transition-all`, `transition-transform`).
145
+ This ensures smooth visual feedback for state changes.
146
+
147
+ ### Complete Example
148
+
149
+ Here's a complete button component demonstrating all patterns:
150
+
151
+ ```tsx
152
+ <button
153
+ className={cn(
154
+ "px-4 py-2 rounded",
155
+ "bg-neutral-200 hover:bg-neutral-300 active:bg-neutral-400",
156
+ "dark:bg-neutral-1100 dark:hover:bg-neutral-1000 dark:active:bg-neutral-900",
157
+ "text-neutral-1300 dark:text-neutral-000",
158
+ "focus-base transition-colors",
159
+ )}
160
+ >
161
+ Click me
162
+ </button>
163
+ ```
164
+
165
+ ### Additional Examples
166
+
167
+ **Select dropdown:**
168
+
169
+ ```tsx
170
+ <Select.Trigger
171
+ className="bg-neutral-200 hover:bg-neutral-300 active:bg-neutral-400 dark:bg-neutral-1100 dark:hover:bg-neutral-1000 dark:active:bg-neutral-900 focus-base transition-colors border border-neutral-300 dark:border-neutral-1000"
172
+ >
173
+ ```
174
+
175
+ **Badge with orange:**
176
+
177
+ ```tsx
178
+ <span
179
+ className="bg-orange-200 hover:bg-orange-300 active:bg-orange-400 dark:bg-orange-900 dark:hover:bg-orange-800 dark:active:bg-orange-700 focus-base transition-colors"
180
+ >
181
+ ```
182
+
183
+ **Toggle/Switch:**
184
+
185
+ ```tsx
186
+ <Switch
187
+ className="bg-neutral-600 hover:bg-neutral-700 active:bg-neutral-800 data-[state=checked]:bg-orange-600 data-[state=checked]:hover:bg-orange-700 data-[state=checked]:active:bg-orange-800 focus-base transition-colors"
188
+ >
189
+ ```
190
+
191
+ ## Git workflow
192
+
193
+ - Always do work on a new branch, start the branch on the HEAD of `origin/main`
194
+ - Before pushing the branch run the tests and linters to ensure they are happy
195
+ - When updating a branch, rebase on `origin/main` and force-push (with lease)
196
+ - Use our PR template in the `.github` folder as a reference for the pull request
197
+ - Keep commit messages concise
@@ -1,2 +1,2 @@
1
- import React,{useRef,useMemo}from"react";import Icon from"../Icon";import LinkButton from"../LinkButton";import cn from"../utils/cn";import DropdownMenu from"../DropdownMenu";const testSessionState={signedIn:false,logOut:{token:"0000",href:"accounts/sign_out"},accountName:"Ably"};export const HeaderLinks=({sessionState=testSessionState,headerLinks,searchButtonVisibility,searchButton,className})=>{const{signedIn,logOut}=sessionState;const formRef=useRef(null);const headerLinkClasses="ui-text-label2 md:ui-text-label3 !font-bold py-4 text-neutral-1300 dark:text-neutral-000 md:text-neutral-1000 dark:md:text-neutral-300 hover:text-neutral-1300 dark:hover:text-neutral-000 active:text-neutral-1300 dark:active:text-neutral-000 transition-colors";const dropdownMenuLinkClasses="block p-2 ui-text-label3 font-semibold text-neutral-1000 dark:text-neutral-300 hover:bg-neutral-100 dark:hover:bg-neutral-1200 active:bg-neutral-200 dark:active:bg-neutral-1100 rounded-lg";const onClickLogout=e=>{e.preventDefault();formRef.current?.submit()};const DashboardLink=({className})=>useMemo(()=>React.createElement("a",{href:"/dashboard",className:className},"Dashboard"),[className]);const LogoutForm=React.createElement("form",{ref:formRef,method:"post",action:logOut.href,className:"hidden"},React.createElement("input",{name:"_method",value:"delete",type:"hidden"}),React.createElement("input",{name:"authenticity_token",value:logOut.token,type:"hidden"}));return React.createElement("nav",{className:cn("flex md:flex-1 md:items-center md:justify-end flex-col md:flex-row border-t-[1px] border-neutral-300 md:border-t-0 md:gap-4 pt-3 pb-4 md:py-0",className)},signedIn&&React.createElement(React.Fragment,null,LogoutForm,React.createElement("div",{className:"block md:hidden"},React.createElement("div",{className:"flex flex-col border-b-[1px] border-neutral-300 px-4 pb-3 mb-3"},React.createElement("span",{className:"py-3 ui-text-sub-header text-[18px] text-neutral-700 dark:text-neutral-600 font-bold"},sessionState.accountName),React.createElement(DashboardLink,{className:headerLinkClasses})))),headerLinks?.map(({href,label,external})=>React.createElement("a",{key:href,className:cn(headerLinkClasses,"flex items-center gap-1.5 px-4 md:px-0 leading-none"),href:href,target:external?"_blank":undefined,rel:external?"noreferrer noopener":undefined},label,external&&React.createElement(Icon,{name:"icon-gui-arrow-top-right-on-square-mini",size:"20px"}))),searchButtonVisibility!=="mobile"?searchButton:null,signedIn?React.createElement(React.Fragment,null,React.createElement("div",{className:"hidden md:block relative"},React.createElement(DropdownMenu,null,React.createElement(DropdownMenu.Trigger,{description:`Account menu for ${sessionState.accountName}`},React.createElement("span",{className:"block text-ellipsis overflow-hidden whitespace-nowrap w-full max-w-[9.375rem] leading-normal"},sessionState.accountName)),React.createElement(DropdownMenu.Content,{anchorPosition:"right",contentClassNames:"w-60 mt-3"},React.createElement("div",{className:"p-2"},React.createElement(DashboardLink,{className:dropdownMenuLinkClasses}),React.createElement("button",{onClick:onClickLogout,className:dropdownMenuLinkClasses},"Logout"))))),React.createElement("div",{className:"block md:hidden px-4 pt-4 pb-0"},React.createElement(LinkButton,{onClick:onClickLogout,variant:"secondary",className:"w-full md:ui-button-secondary-xs","aria-label":"Logout",rightIcon:"icon-gui-arrow-right-end-on-rectangle-outline"},"Logout"))):React.createElement("div",{className:"flex gap-3 pt-3 md:py-0 px-4 md:px-0"},React.createElement(LinkButton,{href:"/login",variant:"secondary",className:"flex-1 md:flex-none md:ui-button-secondary-xs hover:text-neutral-1300 dark:hover:text-neutral-000"},"Login"),React.createElement(LinkButton,{href:"/sign-up",variant:"primary",className:"flex-1 md:flex-none md:ui-button-primary-xs hover:text-neutral-000 dark:hover:text-neutral-1300"},"Start free")))};
1
+ import React,{useRef,useMemo}from"react";import Icon from"../Icon";import LinkButton from"../LinkButton";import cn from"../utils/cn";import DropdownMenu from"../DropdownMenu";const testSessionState={signedIn:false,logOut:{token:"0000",href:"accounts/sign_out"},accountName:"Ably"};export const HeaderLinks=({sessionState=testSessionState,headerLinks,searchButtonVisibility,searchButton,className})=>{const{signedIn,logOut}=sessionState;const formRef=useRef(null);const headerLinkClasses="font-sans text-label2 md:text-label3 !font-bold py-4 text-neutral-1300 dark:text-neutral-000 md:text-neutral-1000 dark:md:text-neutral-300 hover:text-neutral-1300 dark:hover:text-neutral-000 active:text-neutral-1300 dark:active:text-neutral-000 transition-colors";const dropdownMenuLinkClasses="block p-2 ui-text-label3 font-semibold text-neutral-1000 dark:text-neutral-300 hover:bg-neutral-100 dark:hover:bg-neutral-1200 active:bg-neutral-200 dark:active:bg-neutral-1100 rounded-lg";const onClickLogout=e=>{e.preventDefault();formRef.current?.submit()};const DashboardLink=({className})=>useMemo(()=>React.createElement("a",{href:"/dashboard",className:className},"Dashboard"),[className]);const LogoutForm=React.createElement("form",{ref:formRef,method:"post",action:logOut.href,className:"hidden"},React.createElement("input",{name:"_method",value:"delete",type:"hidden"}),React.createElement("input",{name:"authenticity_token",value:logOut.token,type:"hidden"}));return React.createElement("nav",{className:cn("flex md:flex-1 md:items-center md:justify-end flex-col md:flex-row border-t-[1px] border-neutral-300 md:border-t-0 md:gap-4 pt-3 pb-4 md:py-0",className)},signedIn&&React.createElement(React.Fragment,null,LogoutForm,React.createElement("div",{className:"block md:hidden"},React.createElement("div",{className:"flex flex-col border-b-[1px] border-neutral-300 px-4 pb-3 mb-3"},React.createElement("span",{className:"py-3 ui-text-sub-header text-[18px] text-neutral-700 dark:text-neutral-600 font-bold"},sessionState.accountName),React.createElement(DashboardLink,{className:headerLinkClasses})))),headerLinks?.map(({href,label,external})=>React.createElement("a",{key:href,className:cn(headerLinkClasses,"flex items-center gap-1.5 px-4 md:px-0 leading-none"),href:href,target:external?"_blank":undefined,rel:external?"noreferrer noopener":undefined},label,external&&React.createElement(Icon,{name:"icon-gui-arrow-top-right-on-square-mini",size:"20px"}))),searchButtonVisibility!=="mobile"?searchButton:null,signedIn?React.createElement(React.Fragment,null,React.createElement("div",{className:"hidden md:block relative"},React.createElement(DropdownMenu,null,React.createElement(DropdownMenu.Trigger,{description:`Account menu for ${sessionState.accountName}`},React.createElement("span",{className:"block text-ellipsis overflow-hidden whitespace-nowrap w-full max-w-[9.375rem] leading-normal"},sessionState.accountName)),React.createElement(DropdownMenu.Content,{anchorPosition:"right",contentClassNames:"w-60 mt-3"},React.createElement("div",{className:"p-2"},React.createElement(DashboardLink,{className:dropdownMenuLinkClasses}),React.createElement("button",{onClick:onClickLogout,className:dropdownMenuLinkClasses},"Logout"))))),React.createElement("div",{className:"block md:hidden px-4 pt-4 pb-0"},React.createElement(LinkButton,{onClick:onClickLogout,variant:"secondary",className:"w-full md:ui-button-secondary-xs","aria-label":"Logout",rightIcon:"icon-gui-arrow-right-end-on-rectangle-outline"},"Logout"))):React.createElement("div",{className:"flex gap-3 pt-3 md:py-0 px-4 md:px-0"},React.createElement(LinkButton,{href:"/login",variant:"secondary",className:"flex-1 md:flex-none md:ui-button-secondary-xs hover:text-neutral-1300 dark:hover:text-neutral-000"},"Login"),React.createElement(LinkButton,{href:"/sign-up",variant:"primary",className:"flex-1 md:flex-none md:ui-button-primary-xs hover:text-neutral-000 dark:hover:text-neutral-1300"},"Start free")))};
2
2
  //# sourceMappingURL=HeaderLinks.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/core/Header/HeaderLinks.tsx"],"sourcesContent":["import React, { MouseEvent, useRef, useMemo } from \"react\";\nimport { HeaderProps } from \"../Header\";\nimport Icon from \"../Icon\";\nimport LinkButton from \"../LinkButton\";\nimport cn from \"../utils/cn\";\nimport DropdownMenu from \"../DropdownMenu\";\n\nconst testSessionState = {\n signedIn: false,\n logOut: {\n token: \"0000\",\n href: \"accounts/sign_out\",\n },\n accountName: \"Ably\",\n};\n\nexport const HeaderLinks: React.FC<\n Pick<\n HeaderProps,\n | \"sessionState\"\n | \"headerLinks\"\n | \"searchButtonVisibility\"\n | \"searchButton\"\n | \"className\"\n >\n> = ({\n sessionState = testSessionState,\n headerLinks,\n searchButtonVisibility,\n searchButton,\n className,\n}) => {\n const { signedIn, logOut } = sessionState;\n const formRef = useRef<HTMLFormElement>(null);\n\n const headerLinkClasses =\n \"ui-text-label2 md:ui-text-label3 !font-bold py-4 text-neutral-1300 dark:text-neutral-000 md:text-neutral-1000 dark:md:text-neutral-300 hover:text-neutral-1300 dark:hover:text-neutral-000 active:text-neutral-1300 dark:active:text-neutral-000 transition-colors\";\n\n const dropdownMenuLinkClasses =\n \"block p-2 ui-text-label3 font-semibold text-neutral-1000 dark:text-neutral-300 hover:bg-neutral-100 dark:hover:bg-neutral-1200 active:bg-neutral-200 dark:active:bg-neutral-1100 rounded-lg\";\n\n const onClickLogout = (e: MouseEvent) => {\n e.preventDefault();\n formRef.current?.submit();\n };\n\n const DashboardLink = ({ className }: { className: string }) =>\n useMemo(\n () => (\n <a href=\"/dashboard\" className={className}>\n Dashboard\n </a>\n ),\n [className],\n );\n\n const LogoutForm = (\n <form ref={formRef} method=\"post\" action={logOut.href} className=\"hidden\">\n <input name=\"_method\" value=\"delete\" type=\"hidden\" />\n <input name=\"authenticity_token\" value={logOut.token} type=\"hidden\" />\n </form>\n );\n\n return (\n <nav\n className={cn(\n \"flex md:flex-1 md:items-center md:justify-end flex-col md:flex-row border-t-[1px] border-neutral-300 md:border-t-0 md:gap-4 pt-3 pb-4 md:py-0\",\n className,\n )}\n >\n {signedIn && (\n <>\n {LogoutForm}\n <div className=\"block md:hidden\">\n <div className=\"flex flex-col border-b-[1px] border-neutral-300 px-4 pb-3 mb-3\">\n <span className=\"py-3 ui-text-sub-header text-[18px] text-neutral-700 dark:text-neutral-600 font-bold\">\n {sessionState.accountName}\n </span>\n {<DashboardLink className={headerLinkClasses} />}\n </div>\n </div>\n </>\n )}\n\n {headerLinks?.map(({ href, label, external }) => (\n <a\n key={href}\n className={cn(\n headerLinkClasses,\n \"flex items-center gap-1.5 px-4 md:px-0 leading-none\",\n )}\n href={href}\n target={external ? \"_blank\" : undefined}\n rel={external ? \"noreferrer noopener\" : undefined}\n >\n {label}\n {external && (\n <Icon name=\"icon-gui-arrow-top-right-on-square-mini\" size=\"20px\" />\n )}\n </a>\n ))}\n\n {searchButtonVisibility !== \"mobile\" ? searchButton : null}\n {signedIn ? (\n <>\n <div className=\"hidden md:block relative\">\n <DropdownMenu>\n <DropdownMenu.Trigger\n description={`Account menu for ${sessionState.accountName}`}\n >\n <span className=\"block text-ellipsis overflow-hidden whitespace-nowrap w-full max-w-[9.375rem] leading-normal\">\n {sessionState.accountName}\n </span>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content\n anchorPosition=\"right\"\n contentClassNames=\"w-60 mt-3\"\n >\n <div className=\"p-2\">\n <DashboardLink className={dropdownMenuLinkClasses} />\n <button\n onClick={onClickLogout}\n className={dropdownMenuLinkClasses}\n >\n Logout\n </button>\n </div>\n </DropdownMenu.Content>\n </DropdownMenu>\n </div>\n <div className=\"block md:hidden px-4 pt-4 pb-0\">\n <LinkButton\n onClick={onClickLogout}\n variant=\"secondary\"\n className=\"w-full md:ui-button-secondary-xs\"\n aria-label=\"Logout\"\n rightIcon=\"icon-gui-arrow-right-end-on-rectangle-outline\"\n >\n Logout\n </LinkButton>\n </div>\n </>\n ) : (\n <div className=\"flex gap-3 pt-3 md:py-0 px-4 md:px-0\">\n <LinkButton\n href=\"/login\"\n variant=\"secondary\"\n className=\"flex-1 md:flex-none md:ui-button-secondary-xs hover:text-neutral-1300 dark:hover:text-neutral-000\"\n >\n Login\n </LinkButton>\n <LinkButton\n href=\"/sign-up\"\n variant=\"primary\"\n className=\"flex-1 md:flex-none md:ui-button-primary-xs hover:text-neutral-000 dark:hover:text-neutral-1300\"\n >\n Start free\n </LinkButton>\n </div>\n )}\n </nav>\n );\n};\n"],"names":["React","useRef","useMemo","Icon","LinkButton","cn","DropdownMenu","testSessionState","signedIn","logOut","token","href","accountName","HeaderLinks","sessionState","headerLinks","searchButtonVisibility","searchButton","className","formRef","headerLinkClasses","dropdownMenuLinkClasses","onClickLogout","e","preventDefault","current","submit","DashboardLink","a","LogoutForm","form","ref","method","action","input","name","value","type","nav","div","span","map","label","external","key","target","undefined","rel","size","Trigger","description","Content","anchorPosition","contentClassNames","button","onClick","variant","aria-label","rightIcon"],"mappings":"AAAA,OAAOA,OAAqBC,MAAM,CAAEC,OAAO,KAAQ,OAAQ,AAE3D,QAAOC,SAAU,SAAU,AAC3B,QAAOC,eAAgB,eAAgB,AACvC,QAAOC,OAAQ,aAAc,AAC7B,QAAOC,iBAAkB,iBAAkB,CAE3C,MAAMC,iBAAmB,CACvBC,SAAU,MACVC,OAAQ,CACNC,MAAO,OACPC,KAAM,mBACR,EACAC,YAAa,MACf,CAEA,QAAO,MAAMC,YAST,CAAC,CACHC,aAAeP,gBAAgB,CAC/BQ,WAAW,CACXC,sBAAsB,CACtBC,YAAY,CACZC,SAAS,CACV,IACC,KAAM,CAAEV,QAAQ,CAAEC,MAAM,CAAE,CAAGK,aAC7B,MAAMK,QAAUlB,OAAwB,MAExC,MAAMmB,kBACJ,qQAEF,MAAMC,wBACJ,8LAEF,MAAMC,cAAgB,AAACC,IACrBA,EAAEC,cAAc,EAChBL,CAAAA,QAAQM,OAAO,EAAEC,QACnB,EAEA,MAAMC,cAAgB,CAAC,CAAET,SAAS,CAAyB,GACzDhB,QACE,IACE,oBAAC0B,KAAEjB,KAAK,aAAaO,UAAWA,WAAW,aAI7C,CAACA,UAAU,EAGf,MAAMW,WACJ,oBAACC,QAAKC,IAAKZ,QAASa,OAAO,OAAOC,OAAQxB,OAAOE,IAAI,CAAEO,UAAU,UAC/D,oBAACgB,SAAMC,KAAK,UAAUC,MAAM,SAASC,KAAK,WAC1C,oBAACH,SAAMC,KAAK,qBAAqBC,MAAO3B,OAAOC,KAAK,CAAE2B,KAAK,YAI/D,OACE,oBAACC,OACCpB,UAAWb,GACT,gJACAa,YAGDV,UACC,wCACGqB,WACD,oBAACU,OAAIrB,UAAU,mBACb,oBAACqB,OAAIrB,UAAU,kEACb,oBAACsB,QAAKtB,UAAU,wFACbJ,aAAaF,WAAW,EAE1B,oBAACe,eAAcT,UAAWE,uBAMlCL,aAAa0B,IAAI,CAAC,CAAE9B,IAAI,CAAE+B,KAAK,CAAEC,QAAQ,CAAE,GAC1C,oBAACf,KACCgB,IAAKjC,KACLO,UAAWb,GACTe,kBACA,uDAEFT,KAAMA,KACNkC,OAAQF,SAAW,SAAWG,UAC9BC,IAAKJ,SAAW,sBAAwBG,WAEvCJ,MACAC,UACC,oBAACxC,MAAKgC,KAAK,0CAA0Ca,KAAK,WAK/DhC,yBAA2B,SAAWC,aAAe,KACrDT,SACC,wCACE,oBAAC+B,OAAIrB,UAAU,4BACb,oBAACZ,kBACC,oBAACA,aAAa2C,OAAO,EACnBC,YAAa,CAAC,iBAAiB,EAAEpC,aAAaF,WAAW,CAAC,CAAC,EAE3D,oBAAC4B,QAAKtB,UAAU,gGACbJ,aAAaF,WAAW,GAG7B,oBAACN,aAAa6C,OAAO,EACnBC,eAAe,QACfC,kBAAkB,aAElB,oBAACd,OAAIrB,UAAU,OACb,oBAACS,eAAcT,UAAWG,0BAC1B,oBAACiC,UACCC,QAASjC,cACTJ,UAAWG,yBACZ,cAOT,oBAACkB,OAAIrB,UAAU,kCACb,oBAACd,YACCmD,QAASjC,cACTkC,QAAQ,YACRtC,UAAU,mCACVuC,aAAW,SACXC,UAAU,iDACX,YAML,oBAACnB,OAAIrB,UAAU,wCACb,oBAACd,YACCO,KAAK,SACL6C,QAAQ,YACRtC,UAAU,qGACX,SAGD,oBAACd,YACCO,KAAK,WACL6C,QAAQ,UACRtC,UAAU,mGACX,eAOX,CAAE"}
1
+ {"version":3,"sources":["../../../src/core/Header/HeaderLinks.tsx"],"sourcesContent":["import React, { MouseEvent, useRef, useMemo } from \"react\";\nimport { HeaderProps } from \"../Header\";\nimport Icon from \"../Icon\";\nimport LinkButton from \"../LinkButton\";\nimport cn from \"../utils/cn\";\nimport DropdownMenu from \"../DropdownMenu\";\n\nconst testSessionState = {\n signedIn: false,\n logOut: {\n token: \"0000\",\n href: \"accounts/sign_out\",\n },\n accountName: \"Ably\",\n};\n\nexport const HeaderLinks: React.FC<\n Pick<\n HeaderProps,\n | \"sessionState\"\n | \"headerLinks\"\n | \"searchButtonVisibility\"\n | \"searchButton\"\n | \"className\"\n >\n> = ({\n sessionState = testSessionState,\n headerLinks,\n searchButtonVisibility,\n searchButton,\n className,\n}) => {\n const { signedIn, logOut } = sessionState;\n const formRef = useRef<HTMLFormElement>(null);\n\n const headerLinkClasses =\n \"font-sans text-label2 md:text-label3 !font-bold py-4 text-neutral-1300 dark:text-neutral-000 md:text-neutral-1000 dark:md:text-neutral-300 hover:text-neutral-1300 dark:hover:text-neutral-000 active:text-neutral-1300 dark:active:text-neutral-000 transition-colors\";\n\n const dropdownMenuLinkClasses =\n \"block p-2 ui-text-label3 font-semibold text-neutral-1000 dark:text-neutral-300 hover:bg-neutral-100 dark:hover:bg-neutral-1200 active:bg-neutral-200 dark:active:bg-neutral-1100 rounded-lg\";\n\n const onClickLogout = (e: MouseEvent) => {\n e.preventDefault();\n formRef.current?.submit();\n };\n\n const DashboardLink = ({ className }: { className: string }) =>\n useMemo(\n () => (\n <a href=\"/dashboard\" className={className}>\n Dashboard\n </a>\n ),\n [className],\n );\n\n const LogoutForm = (\n <form ref={formRef} method=\"post\" action={logOut.href} className=\"hidden\">\n <input name=\"_method\" value=\"delete\" type=\"hidden\" />\n <input name=\"authenticity_token\" value={logOut.token} type=\"hidden\" />\n </form>\n );\n\n return (\n <nav\n className={cn(\n \"flex md:flex-1 md:items-center md:justify-end flex-col md:flex-row border-t-[1px] border-neutral-300 md:border-t-0 md:gap-4 pt-3 pb-4 md:py-0\",\n className,\n )}\n >\n {signedIn && (\n <>\n {LogoutForm}\n <div className=\"block md:hidden\">\n <div className=\"flex flex-col border-b-[1px] border-neutral-300 px-4 pb-3 mb-3\">\n <span className=\"py-3 ui-text-sub-header text-[18px] text-neutral-700 dark:text-neutral-600 font-bold\">\n {sessionState.accountName}\n </span>\n {<DashboardLink className={headerLinkClasses} />}\n </div>\n </div>\n </>\n )}\n\n {headerLinks?.map(({ href, label, external }) => (\n <a\n key={href}\n className={cn(\n headerLinkClasses,\n \"flex items-center gap-1.5 px-4 md:px-0 leading-none\",\n )}\n href={href}\n target={external ? \"_blank\" : undefined}\n rel={external ? \"noreferrer noopener\" : undefined}\n >\n {label}\n {external && (\n <Icon name=\"icon-gui-arrow-top-right-on-square-mini\" size=\"20px\" />\n )}\n </a>\n ))}\n\n {searchButtonVisibility !== \"mobile\" ? searchButton : null}\n {signedIn ? (\n <>\n <div className=\"hidden md:block relative\">\n <DropdownMenu>\n <DropdownMenu.Trigger\n description={`Account menu for ${sessionState.accountName}`}\n >\n <span className=\"block text-ellipsis overflow-hidden whitespace-nowrap w-full max-w-[9.375rem] leading-normal\">\n {sessionState.accountName}\n </span>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content\n anchorPosition=\"right\"\n contentClassNames=\"w-60 mt-3\"\n >\n <div className=\"p-2\">\n <DashboardLink className={dropdownMenuLinkClasses} />\n <button\n onClick={onClickLogout}\n className={dropdownMenuLinkClasses}\n >\n Logout\n </button>\n </div>\n </DropdownMenu.Content>\n </DropdownMenu>\n </div>\n <div className=\"block md:hidden px-4 pt-4 pb-0\">\n <LinkButton\n onClick={onClickLogout}\n variant=\"secondary\"\n className=\"w-full md:ui-button-secondary-xs\"\n aria-label=\"Logout\"\n rightIcon=\"icon-gui-arrow-right-end-on-rectangle-outline\"\n >\n Logout\n </LinkButton>\n </div>\n </>\n ) : (\n <div className=\"flex gap-3 pt-3 md:py-0 px-4 md:px-0\">\n <LinkButton\n href=\"/login\"\n variant=\"secondary\"\n className=\"flex-1 md:flex-none md:ui-button-secondary-xs hover:text-neutral-1300 dark:hover:text-neutral-000\"\n >\n Login\n </LinkButton>\n <LinkButton\n href=\"/sign-up\"\n variant=\"primary\"\n className=\"flex-1 md:flex-none md:ui-button-primary-xs hover:text-neutral-000 dark:hover:text-neutral-1300\"\n >\n Start free\n </LinkButton>\n </div>\n )}\n </nav>\n );\n};\n"],"names":["React","useRef","useMemo","Icon","LinkButton","cn","DropdownMenu","testSessionState","signedIn","logOut","token","href","accountName","HeaderLinks","sessionState","headerLinks","searchButtonVisibility","searchButton","className","formRef","headerLinkClasses","dropdownMenuLinkClasses","onClickLogout","e","preventDefault","current","submit","DashboardLink","a","LogoutForm","form","ref","method","action","input","name","value","type","nav","div","span","map","label","external","key","target","undefined","rel","size","Trigger","description","Content","anchorPosition","contentClassNames","button","onClick","variant","aria-label","rightIcon"],"mappings":"AAAA,OAAOA,OAAqBC,MAAM,CAAEC,OAAO,KAAQ,OAAQ,AAE3D,QAAOC,SAAU,SAAU,AAC3B,QAAOC,eAAgB,eAAgB,AACvC,QAAOC,OAAQ,aAAc,AAC7B,QAAOC,iBAAkB,iBAAkB,CAE3C,MAAMC,iBAAmB,CACvBC,SAAU,MACVC,OAAQ,CACNC,MAAO,OACPC,KAAM,mBACR,EACAC,YAAa,MACf,CAEA,QAAO,MAAMC,YAST,CAAC,CACHC,aAAeP,gBAAgB,CAC/BQ,WAAW,CACXC,sBAAsB,CACtBC,YAAY,CACZC,SAAS,CACV,IACC,KAAM,CAAEV,QAAQ,CAAEC,MAAM,CAAE,CAAGK,aAC7B,MAAMK,QAAUlB,OAAwB,MAExC,MAAMmB,kBACJ,yQAEF,MAAMC,wBACJ,8LAEF,MAAMC,cAAgB,AAACC,IACrBA,EAAEC,cAAc,EAChBL,CAAAA,QAAQM,OAAO,EAAEC,QACnB,EAEA,MAAMC,cAAgB,CAAC,CAAET,SAAS,CAAyB,GACzDhB,QACE,IACE,oBAAC0B,KAAEjB,KAAK,aAAaO,UAAWA,WAAW,aAI7C,CAACA,UAAU,EAGf,MAAMW,WACJ,oBAACC,QAAKC,IAAKZ,QAASa,OAAO,OAAOC,OAAQxB,OAAOE,IAAI,CAAEO,UAAU,UAC/D,oBAACgB,SAAMC,KAAK,UAAUC,MAAM,SAASC,KAAK,WAC1C,oBAACH,SAAMC,KAAK,qBAAqBC,MAAO3B,OAAOC,KAAK,CAAE2B,KAAK,YAI/D,OACE,oBAACC,OACCpB,UAAWb,GACT,gJACAa,YAGDV,UACC,wCACGqB,WACD,oBAACU,OAAIrB,UAAU,mBACb,oBAACqB,OAAIrB,UAAU,kEACb,oBAACsB,QAAKtB,UAAU,wFACbJ,aAAaF,WAAW,EAE1B,oBAACe,eAAcT,UAAWE,uBAMlCL,aAAa0B,IAAI,CAAC,CAAE9B,IAAI,CAAE+B,KAAK,CAAEC,QAAQ,CAAE,GAC1C,oBAACf,KACCgB,IAAKjC,KACLO,UAAWb,GACTe,kBACA,uDAEFT,KAAMA,KACNkC,OAAQF,SAAW,SAAWG,UAC9BC,IAAKJ,SAAW,sBAAwBG,WAEvCJ,MACAC,UACC,oBAACxC,MAAKgC,KAAK,0CAA0Ca,KAAK,WAK/DhC,yBAA2B,SAAWC,aAAe,KACrDT,SACC,wCACE,oBAAC+B,OAAIrB,UAAU,4BACb,oBAACZ,kBACC,oBAACA,aAAa2C,OAAO,EACnBC,YAAa,CAAC,iBAAiB,EAAEpC,aAAaF,WAAW,CAAC,CAAC,EAE3D,oBAAC4B,QAAKtB,UAAU,gGACbJ,aAAaF,WAAW,GAG7B,oBAACN,aAAa6C,OAAO,EACnBC,eAAe,QACfC,kBAAkB,aAElB,oBAACd,OAAIrB,UAAU,OACb,oBAACS,eAAcT,UAAWG,0BAC1B,oBAACiC,UACCC,QAASjC,cACTJ,UAAWG,yBACZ,cAOT,oBAACkB,OAAIrB,UAAU,kCACb,oBAACd,YACCmD,QAASjC,cACTkC,QAAQ,YACRtC,UAAU,mCACVuC,aAAW,SACXC,UAAU,iDACX,YAML,oBAACnB,OAAIrB,UAAU,wCACb,oBAACd,YACCO,KAAK,SACL6C,QAAQ,YACRtC,UAAU,qGACX,SAGD,oBAACd,YACCO,KAAK,WACL6C,QAAQ,UACRtC,UAAU,mGACX,eAOX,CAAE"}
@@ -1,2 +1,2 @@
1
- import*as React from"react";import{forwardRef}from"react";const IconProductChatMono=({title,titleId,...props},ref)=>React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:128,height:128,fill:"none",viewBox:"0 0 128 128",ref:ref,"aria-labelledby":titleId,...props},title?React.createElement("title",{id:titleId},title):null,React.createElement("path",{stroke:"currentColor",strokeWidth:5,d:"M34 11h60c11.046 0 20 8.954 20 20v74.41c0 5.213-6.19 7.946-10.043 4.434l-22.812-20.8A4 4 0 0 0 78.45 88H34c-11.046 0-20-8.954-20-20V31c0-11.046 8.954-20 20-20Z"}));const ForwardRef=forwardRef(IconProductChatMono);export default ForwardRef;
1
+ import*as React from"react";import{forwardRef}from"react";const IconProductChatMono=({title,titleId,...props},ref)=>React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:128,height:128,fill:"none",viewBox:"0 0 128 128",ref:ref,"aria-labelledby":titleId,...props},title?React.createElement("title",{id:titleId},title):null,React.createElement("path",{stroke:"currentColor",strokeWidth:6,d:"M38 11h52c13.255 0 24 10.745 24 24v70.41c0 5.213-6.19 7.946-10.043 4.434l-22.812-20.8A4 4 0 0 0 78.45 88H38c-13.255 0-24-10.745-24-24V35c0-13.255 10.745-24 24-24Z"}));const ForwardRef=forwardRef(IconProductChatMono);export default ForwardRef;
2
2
  //# sourceMappingURL=icon-product-chat-mono.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/core/Icon/components/icon-product-chat-mono.tsx"],"sourcesContent":["import * as React from \"react\";\nimport type { SVGProps } from \"react\";\nimport { Ref, forwardRef } from \"react\";\ninterface SVGRProps {\n title?: string;\n titleId?: string;\n}\nconst IconProductChatMono = ({\n title,\n titleId,\n ...props\n}: SVGProps<SVGSVGElement> & SVGRProps, ref: Ref<SVGSVGElement>) => <svg xmlns=\"http://www.w3.org/2000/svg\" width={128} height={128} fill=\"none\" viewBox=\"0 0 128 128\" ref={ref} aria-labelledby={titleId} {...props}>{title ? <title id={titleId}>{title}</title> : null}<path stroke=\"currentColor\" strokeWidth={5} d=\"M34 11h60c11.046 0 20 8.954 20 20v74.41c0 5.213-6.19 7.946-10.043 4.434l-22.812-20.8A4 4 0 0 0 78.45 88H34c-11.046 0-20-8.954-20-20V31c0-11.046 8.954-20 20-20Z\" /></svg>;\nconst ForwardRef = forwardRef(IconProductChatMono);\nexport default ForwardRef;"],"names":["React","forwardRef","IconProductChatMono","title","titleId","props","ref","svg","xmlns","width","height","fill","viewBox","aria-labelledby","id","path","stroke","strokeWidth","d","ForwardRef"],"mappings":"AAAA,UAAYA,UAAW,OAAQ,AAE/B,QAAcC,UAAU,KAAQ,OAAQ,CAKxC,MAAMC,oBAAsB,CAAC,CAC3BC,KAAK,CACLC,OAAO,CACP,GAAGC,MACiC,CAAEC,MAA4B,oBAACC,OAAIC,MAAM,6BAA6BC,MAAO,IAAKC,OAAQ,IAAKC,KAAK,OAAOC,QAAQ,cAAcN,IAAKA,IAAKO,kBAAiBT,QAAU,GAAGC,KAAK,EAAGF,MAAQ,oBAACA,SAAMW,GAAIV,SAAUD,OAAiB,KAAK,oBAACY,QAAKC,OAAO,eAAeC,YAAa,EAAGC,EAAE,qKACxT,MAAMC,WAAalB,WAAWC,oBAC9B,gBAAeiB,UAAW"}
1
+ {"version":3,"sources":["../../../../src/core/Icon/components/icon-product-chat-mono.tsx"],"sourcesContent":["import * as React from \"react\";\nimport type { SVGProps } from \"react\";\nimport { Ref, forwardRef } from \"react\";\ninterface SVGRProps {\n title?: string;\n titleId?: string;\n}\nconst IconProductChatMono = ({\n title,\n titleId,\n ...props\n}: SVGProps<SVGSVGElement> & SVGRProps, ref: Ref<SVGSVGElement>) => <svg xmlns=\"http://www.w3.org/2000/svg\" width={128} height={128} fill=\"none\" viewBox=\"0 0 128 128\" ref={ref} aria-labelledby={titleId} {...props}>{title ? <title id={titleId}>{title}</title> : null}<path stroke=\"currentColor\" strokeWidth={6} d=\"M38 11h52c13.255 0 24 10.745 24 24v70.41c0 5.213-6.19 7.946-10.043 4.434l-22.812-20.8A4 4 0 0 0 78.45 88H38c-13.255 0-24-10.745-24-24V35c0-13.255 10.745-24 24-24Z\" /></svg>;\nconst ForwardRef = forwardRef(IconProductChatMono);\nexport default ForwardRef;"],"names":["React","forwardRef","IconProductChatMono","title","titleId","props","ref","svg","xmlns","width","height","fill","viewBox","aria-labelledby","id","path","stroke","strokeWidth","d","ForwardRef"],"mappings":"AAAA,UAAYA,UAAW,OAAQ,AAE/B,QAAcC,UAAU,KAAQ,OAAQ,CAKxC,MAAMC,oBAAsB,CAAC,CAC3BC,KAAK,CACLC,OAAO,CACP,GAAGC,MACiC,CAAEC,MAA4B,oBAACC,OAAIC,MAAM,6BAA6BC,MAAO,IAAKC,OAAQ,IAAKC,KAAK,OAAOC,QAAQ,cAAcN,IAAKA,IAAKO,kBAAiBT,QAAU,GAAGC,KAAK,EAAGF,MAAQ,oBAACA,SAAMW,GAAIV,SAAUD,OAAiB,KAAK,oBAACY,QAAKC,OAAO,eAAeC,YAAa,EAAGC,EAAE,wKACxT,MAAMC,WAAalB,WAAWC,oBAC9B,gBAAeiB,UAAW"}
@@ -1,2 +1,2 @@
1
- import*as React from"react";import{forwardRef}from"react";const IconProductLiveobjectsMono=({title,titleId,...props},ref)=>React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:128,height:128,fill:"none",viewBox:"0 0 128 128",ref:ref,"aria-labelledby":titleId,...props},title?React.createElement("title",{id:titleId},title):null,React.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeWidth:5,d:"M76 11h17c13.255 0 24 10.745 24 24v17M52 11H35c-13.255 0-24 10.745-24 24v17m0 24v17c0 13.255 10.745 24 24 24h17m65-41v17c0 13.255-10.745 24-24 24H76"}),React.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:5,d:"m43 66 17 17 26-38"}));const ForwardRef=forwardRef(IconProductLiveobjectsMono);export default ForwardRef;
1
+ import*as React from"react";import{forwardRef}from"react";const IconProductLiveobjectsMono=({title,titleId,...props},ref)=>React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:128,height:128,fill:"none",viewBox:"0 0 128 128",ref:ref,"aria-labelledby":titleId,...props},title?React.createElement("title",{id:titleId},title):null,React.createElement("g",{stroke:"currentColor",strokeLinecap:"round",strokeWidth:6},React.createElement("path",{d:"M76 11h17c13.255 0 24 10.745 24 24v17M52 11H35c-13.255 0-24 10.745-24 24v17m0 24v17c0 13.255 10.745 24 24 24h17m65-41v17c0 13.255-10.745 24-24 24H76"}),React.createElement("path",{strokeLinejoin:"round",d:"m43 66 17 17 26-38"})));const ForwardRef=forwardRef(IconProductLiveobjectsMono);export default ForwardRef;
2
2
  //# sourceMappingURL=icon-product-liveobjects-mono.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/core/Icon/components/icon-product-liveobjects-mono.tsx"],"sourcesContent":["import * as React from \"react\";\nimport type { SVGProps } from \"react\";\nimport { Ref, forwardRef } from \"react\";\ninterface SVGRProps {\n title?: string;\n titleId?: string;\n}\nconst IconProductLiveobjectsMono = ({\n title,\n titleId,\n ...props\n}: SVGProps<SVGSVGElement> & SVGRProps, ref: Ref<SVGSVGElement>) => <svg xmlns=\"http://www.w3.org/2000/svg\" width={128} height={128} fill=\"none\" viewBox=\"0 0 128 128\" ref={ref} aria-labelledby={titleId} {...props}>{title ? <title id={titleId}>{title}</title> : null}<path stroke=\"currentColor\" strokeLinecap=\"round\" strokeWidth={5} d=\"M76 11h17c13.255 0 24 10.745 24 24v17M52 11H35c-13.255 0-24 10.745-24 24v17m0 24v17c0 13.255 10.745 24 24 24h17m65-41v17c0 13.255-10.745 24-24 24H76\" /><path stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={5} d=\"m43 66 17 17 26-38\" /></svg>;\nconst ForwardRef = forwardRef(IconProductLiveobjectsMono);\nexport default ForwardRef;"],"names":["React","forwardRef","IconProductLiveobjectsMono","title","titleId","props","ref","svg","xmlns","width","height","fill","viewBox","aria-labelledby","id","path","stroke","strokeLinecap","strokeWidth","d","strokeLinejoin","ForwardRef"],"mappings":"AAAA,UAAYA,UAAW,OAAQ,AAE/B,QAAcC,UAAU,KAAQ,OAAQ,CAKxC,MAAMC,2BAA6B,CAAC,CAClCC,KAAK,CACLC,OAAO,CACP,GAAGC,MACiC,CAAEC,MAA4B,oBAACC,OAAIC,MAAM,6BAA6BC,MAAO,IAAKC,OAAQ,IAAKC,KAAK,OAAOC,QAAQ,cAAcN,IAAKA,IAAKO,kBAAiBT,QAAU,GAAGC,KAAK,EAAGF,MAAQ,oBAACA,SAAMW,GAAIV,SAAUD,OAAiB,KAAK,oBAACY,QAAKC,OAAO,eAAeC,cAAc,QAAQC,YAAa,EAAGC,EAAE,yJAAyJ,oBAACJ,QAAKC,OAAO,eAAeC,cAAc,QAAQG,eAAe,QAAQF,YAAa,EAAGC,EAAE,wBAClkB,MAAME,WAAapB,WAAWC,2BAC9B,gBAAemB,UAAW"}
1
+ {"version":3,"sources":["../../../../src/core/Icon/components/icon-product-liveobjects-mono.tsx"],"sourcesContent":["import * as React from \"react\";\nimport type { SVGProps } from \"react\";\nimport { Ref, forwardRef } from \"react\";\ninterface SVGRProps {\n title?: string;\n titleId?: string;\n}\nconst IconProductLiveobjectsMono = ({\n title,\n titleId,\n ...props\n}: SVGProps<SVGSVGElement> & SVGRProps, ref: Ref<SVGSVGElement>) => <svg xmlns=\"http://www.w3.org/2000/svg\" width={128} height={128} fill=\"none\" viewBox=\"0 0 128 128\" ref={ref} aria-labelledby={titleId} {...props}>{title ? <title id={titleId}>{title}</title> : null}<g stroke=\"currentColor\" strokeLinecap=\"round\" strokeWidth={6}><path d=\"M76 11h17c13.255 0 24 10.745 24 24v17M52 11H35c-13.255 0-24 10.745-24 24v17m0 24v17c0 13.255 10.745 24 24 24h17m65-41v17c0 13.255-10.745 24-24 24H76\" /><path strokeLinejoin=\"round\" d=\"m43 66 17 17 26-38\" /></g></svg>;\nconst ForwardRef = forwardRef(IconProductLiveobjectsMono);\nexport default ForwardRef;"],"names":["React","forwardRef","IconProductLiveobjectsMono","title","titleId","props","ref","svg","xmlns","width","height","fill","viewBox","aria-labelledby","id","g","stroke","strokeLinecap","strokeWidth","path","d","strokeLinejoin","ForwardRef"],"mappings":"AAAA,UAAYA,UAAW,OAAQ,AAE/B,QAAcC,UAAU,KAAQ,OAAQ,CAKxC,MAAMC,2BAA6B,CAAC,CAClCC,KAAK,CACLC,OAAO,CACP,GAAGC,MACiC,CAAEC,MAA4B,oBAACC,OAAIC,MAAM,6BAA6BC,MAAO,IAAKC,OAAQ,IAAKC,KAAK,OAAOC,QAAQ,cAAcN,IAAKA,IAAKO,kBAAiBT,QAAU,GAAGC,KAAK,EAAGF,MAAQ,oBAACA,SAAMW,GAAIV,SAAUD,OAAiB,KAAK,oBAACY,KAAEC,OAAO,eAAeC,cAAc,QAAQC,YAAa,GAAG,oBAACC,QAAKC,EAAE,yJAAyJ,oBAACD,QAAKE,eAAe,QAAQD,EAAE,yBACzgB,MAAME,WAAarB,WAAWC,2BAC9B,gBAAeoB,UAAW"}
@@ -1,2 +1,2 @@
1
- import*as React from"react";import{forwardRef}from"react";const IconProductLivesyncMono=({title,titleId,...props},ref)=>React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:128,height:128,fill:"none",viewBox:"0 0 128 128",ref:ref,"aria-labelledby":titleId,...props},title?React.createElement("title",{id:titleId},title):null,React.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeWidth:5,d:"M115.029 117H64V78.015a1 1 0 0 1 1.605-.797l50.029 37.986c.763.579.353 1.796-.605 1.796ZM11 52v25c0 22.091 17.909 40 40 40h13M12.97 11H64v38.985a1 1 0 0 1-1.605.797L12.366 12.797c-.763-.58-.353-1.797.605-1.797ZM117 76V51c0-22.091-17.909-40-40-40H64"}));const ForwardRef=forwardRef(IconProductLivesyncMono);export default ForwardRef;
1
+ import*as React from"react";import{forwardRef}from"react";const IconProductLivesyncMono=({title,titleId,...props},ref)=>React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:128,height:128,fill:"none",viewBox:"0 0 128 128",ref:ref,"aria-labelledby":titleId,...props},title?React.createElement("title",{id:titleId},title):null,React.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeWidth:6,d:"M115.029 117H64V78.015a1 1 0 0 1 1.605-.797l50.029 37.986c.763.579.353 1.796-.605 1.796ZM11 52v25c0 22.091 17.909 40 40 40h13M12.97 11H64v38.985a1 1 0 0 1-1.605.797L12.366 12.797c-.763-.58-.353-1.797.605-1.797ZM117 76V51c0-22.091-17.909-40-40-40H64"}));const ForwardRef=forwardRef(IconProductLivesyncMono);export default ForwardRef;
2
2
  //# sourceMappingURL=icon-product-livesync-mono.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/core/Icon/components/icon-product-livesync-mono.tsx"],"sourcesContent":["import * as React from \"react\";\nimport type { SVGProps } from \"react\";\nimport { Ref, forwardRef } from \"react\";\ninterface SVGRProps {\n title?: string;\n titleId?: string;\n}\nconst IconProductLivesyncMono = ({\n title,\n titleId,\n ...props\n}: SVGProps<SVGSVGElement> & SVGRProps, ref: Ref<SVGSVGElement>) => <svg xmlns=\"http://www.w3.org/2000/svg\" width={128} height={128} fill=\"none\" viewBox=\"0 0 128 128\" ref={ref} aria-labelledby={titleId} {...props}>{title ? <title id={titleId}>{title}</title> : null}<path stroke=\"currentColor\" strokeLinecap=\"round\" strokeWidth={5} d=\"M115.029 117H64V78.015a1 1 0 0 1 1.605-.797l50.029 37.986c.763.579.353 1.796-.605 1.796ZM11 52v25c0 22.091 17.909 40 40 40h13M12.97 11H64v38.985a1 1 0 0 1-1.605.797L12.366 12.797c-.763-.58-.353-1.797.605-1.797ZM117 76V51c0-22.091-17.909-40-40-40H64\" /></svg>;\nconst ForwardRef = forwardRef(IconProductLivesyncMono);\nexport default ForwardRef;"],"names":["React","forwardRef","IconProductLivesyncMono","title","titleId","props","ref","svg","xmlns","width","height","fill","viewBox","aria-labelledby","id","path","stroke","strokeLinecap","strokeWidth","d","ForwardRef"],"mappings":"AAAA,UAAYA,UAAW,OAAQ,AAE/B,QAAcC,UAAU,KAAQ,OAAQ,CAKxC,MAAMC,wBAA0B,CAAC,CAC/BC,KAAK,CACLC,OAAO,CACP,GAAGC,MACiC,CAAEC,MAA4B,oBAACC,OAAIC,MAAM,6BAA6BC,MAAO,IAAKC,OAAQ,IAAKC,KAAK,OAAOC,QAAQ,cAAcN,IAAKA,IAAKO,kBAAiBT,QAAU,GAAGC,KAAK,EAAGF,MAAQ,oBAACA,SAAMW,GAAIV,SAAUD,OAAiB,KAAK,oBAACY,QAAKC,OAAO,eAAeC,cAAc,QAAQC,YAAa,EAAGC,EAAE,8PAC9U,MAAMC,WAAanB,WAAWC,wBAC9B,gBAAekB,UAAW"}
1
+ {"version":3,"sources":["../../../../src/core/Icon/components/icon-product-livesync-mono.tsx"],"sourcesContent":["import * as React from \"react\";\nimport type { SVGProps } from \"react\";\nimport { Ref, forwardRef } from \"react\";\ninterface SVGRProps {\n title?: string;\n titleId?: string;\n}\nconst IconProductLivesyncMono = ({\n title,\n titleId,\n ...props\n}: SVGProps<SVGSVGElement> & SVGRProps, ref: Ref<SVGSVGElement>) => <svg xmlns=\"http://www.w3.org/2000/svg\" width={128} height={128} fill=\"none\" viewBox=\"0 0 128 128\" ref={ref} aria-labelledby={titleId} {...props}>{title ? <title id={titleId}>{title}</title> : null}<path stroke=\"currentColor\" strokeLinecap=\"round\" strokeWidth={6} d=\"M115.029 117H64V78.015a1 1 0 0 1 1.605-.797l50.029 37.986c.763.579.353 1.796-.605 1.796ZM11 52v25c0 22.091 17.909 40 40 40h13M12.97 11H64v38.985a1 1 0 0 1-1.605.797L12.366 12.797c-.763-.58-.353-1.797.605-1.797ZM117 76V51c0-22.091-17.909-40-40-40H64\" /></svg>;\nconst ForwardRef = forwardRef(IconProductLivesyncMono);\nexport default ForwardRef;"],"names":["React","forwardRef","IconProductLivesyncMono","title","titleId","props","ref","svg","xmlns","width","height","fill","viewBox","aria-labelledby","id","path","stroke","strokeLinecap","strokeWidth","d","ForwardRef"],"mappings":"AAAA,UAAYA,UAAW,OAAQ,AAE/B,QAAcC,UAAU,KAAQ,OAAQ,CAKxC,MAAMC,wBAA0B,CAAC,CAC/BC,KAAK,CACLC,OAAO,CACP,GAAGC,MACiC,CAAEC,MAA4B,oBAACC,OAAIC,MAAM,6BAA6BC,MAAO,IAAKC,OAAQ,IAAKC,KAAK,OAAOC,QAAQ,cAAcN,IAAKA,IAAKO,kBAAiBT,QAAU,GAAGC,KAAK,EAAGF,MAAQ,oBAACA,SAAMW,GAAIV,SAAUD,OAAiB,KAAK,oBAACY,QAAKC,OAAO,eAAeC,cAAc,QAAQC,YAAa,EAAGC,EAAE,8PAC9U,MAAMC,WAAanB,WAAWC,wBAC9B,gBAAekB,UAAW"}
@@ -1,2 +1,2 @@
1
- import*as React from"react";import{forwardRef}from"react";const IconProductPubsubMono=({title,titleId,...props},ref)=>React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:128,height:128,fill:"none",viewBox:"0 0 128 128",ref:ref,"aria-labelledby":titleId,...props},title?React.createElement("title",{id:titleId},title):null,React.createElement("path",{stroke:"currentColor",strokeWidth:5,d:"M56.603 13.893 16.802 77.888C15.145 80.552 17.06 84 20.198 84H62a2 2 0 0 1 2 2v25.995c0 4.023 5.272 5.529 7.397 2.112l39.801-63.994c1.657-2.665-.259-6.113-3.396-6.113H66a2 2 0 0 1-2-2V16.005c0-4.023-5.272-5.529-7.397-2.112Z"}));const ForwardRef=forwardRef(IconProductPubsubMono);export default ForwardRef;
1
+ import*as React from"react";import{forwardRef}from"react";const IconProductPubsubMono=({title,titleId,...props},ref)=>React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:128,height:128,fill:"none",viewBox:"0 0 128 128",ref:ref,"aria-labelledby":titleId,...props},title?React.createElement("title",{id:titleId},title):null,React.createElement("path",{stroke:"currentColor",strokeWidth:6,d:"M56.604 13.893 16.802 77.888C15.145 80.552 17.061 84 20.2 84H62a2 2 0 0 1 2 2v25.995c0 4.023 5.272 5.529 7.397 2.112l39.802-63.994c1.657-2.665-.259-6.113-3.397-6.113H66a2 2 0 0 1-2-2V16.005c0-4.023-5.271-5.529-7.396-2.112Z"}));const ForwardRef=forwardRef(IconProductPubsubMono);export default ForwardRef;
2
2
  //# sourceMappingURL=icon-product-pubsub-mono.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/core/Icon/components/icon-product-pubsub-mono.tsx"],"sourcesContent":["import * as React from \"react\";\nimport type { SVGProps } from \"react\";\nimport { Ref, forwardRef } from \"react\";\ninterface SVGRProps {\n title?: string;\n titleId?: string;\n}\nconst IconProductPubsubMono = ({\n title,\n titleId,\n ...props\n}: SVGProps<SVGSVGElement> & SVGRProps, ref: Ref<SVGSVGElement>) => <svg xmlns=\"http://www.w3.org/2000/svg\" width={128} height={128} fill=\"none\" viewBox=\"0 0 128 128\" ref={ref} aria-labelledby={titleId} {...props}>{title ? <title id={titleId}>{title}</title> : null}<path stroke=\"currentColor\" strokeWidth={5} d=\"M56.603 13.893 16.802 77.888C15.145 80.552 17.06 84 20.198 84H62a2 2 0 0 1 2 2v25.995c0 4.023 5.272 5.529 7.397 2.112l39.801-63.994c1.657-2.665-.259-6.113-3.396-6.113H66a2 2 0 0 1-2-2V16.005c0-4.023-5.272-5.529-7.397-2.112Z\" /></svg>;\nconst ForwardRef = forwardRef(IconProductPubsubMono);\nexport default ForwardRef;"],"names":["React","forwardRef","IconProductPubsubMono","title","titleId","props","ref","svg","xmlns","width","height","fill","viewBox","aria-labelledby","id","path","stroke","strokeWidth","d","ForwardRef"],"mappings":"AAAA,UAAYA,UAAW,OAAQ,AAE/B,QAAcC,UAAU,KAAQ,OAAQ,CAKxC,MAAMC,sBAAwB,CAAC,CAC7BC,KAAK,CACLC,OAAO,CACP,GAAGC,MACiC,CAAEC,MAA4B,oBAACC,OAAIC,MAAM,6BAA6BC,MAAO,IAAKC,OAAQ,IAAKC,KAAK,OAAOC,QAAQ,cAAcN,IAAKA,IAAKO,kBAAiBT,QAAU,GAAGC,KAAK,EAAGF,MAAQ,oBAACA,SAAMW,GAAIV,SAAUD,OAAiB,KAAK,oBAACY,QAAKC,OAAO,eAAeC,YAAa,EAAGC,EAAE,qOACxT,MAAMC,WAAalB,WAAWC,sBAC9B,gBAAeiB,UAAW"}
1
+ {"version":3,"sources":["../../../../src/core/Icon/components/icon-product-pubsub-mono.tsx"],"sourcesContent":["import * as React from \"react\";\nimport type { SVGProps } from \"react\";\nimport { Ref, forwardRef } from \"react\";\ninterface SVGRProps {\n title?: string;\n titleId?: string;\n}\nconst IconProductPubsubMono = ({\n title,\n titleId,\n ...props\n}: SVGProps<SVGSVGElement> & SVGRProps, ref: Ref<SVGSVGElement>) => <svg xmlns=\"http://www.w3.org/2000/svg\" width={128} height={128} fill=\"none\" viewBox=\"0 0 128 128\" ref={ref} aria-labelledby={titleId} {...props}>{title ? <title id={titleId}>{title}</title> : null}<path stroke=\"currentColor\" strokeWidth={6} d=\"M56.604 13.893 16.802 77.888C15.145 80.552 17.061 84 20.2 84H62a2 2 0 0 1 2 2v25.995c0 4.023 5.272 5.529 7.397 2.112l39.802-63.994c1.657-2.665-.259-6.113-3.397-6.113H66a2 2 0 0 1-2-2V16.005c0-4.023-5.271-5.529-7.396-2.112Z\" /></svg>;\nconst ForwardRef = forwardRef(IconProductPubsubMono);\nexport default ForwardRef;"],"names":["React","forwardRef","IconProductPubsubMono","title","titleId","props","ref","svg","xmlns","width","height","fill","viewBox","aria-labelledby","id","path","stroke","strokeWidth","d","ForwardRef"],"mappings":"AAAA,UAAYA,UAAW,OAAQ,AAE/B,QAAcC,UAAU,KAAQ,OAAQ,CAKxC,MAAMC,sBAAwB,CAAC,CAC7BC,KAAK,CACLC,OAAO,CACP,GAAGC,MACiC,CAAEC,MAA4B,oBAACC,OAAIC,MAAM,6BAA6BC,MAAO,IAAKC,OAAQ,IAAKC,KAAK,OAAOC,QAAQ,cAAcN,IAAKA,IAAKO,kBAAiBT,QAAU,GAAGC,KAAK,EAAGF,MAAQ,oBAACA,SAAMW,GAAIV,SAAUD,OAAiB,KAAK,oBAACY,QAAKC,OAAO,eAAeC,YAAa,EAAGC,EAAE,oOACxT,MAAMC,WAAalB,WAAWC,sBAC9B,gBAAeiB,UAAW"}
@@ -1,2 +1,2 @@
1
- import*as React from"react";import{forwardRef}from"react";const IconProductSpacesMono=({title,titleId,...props},ref)=>React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:128,height:128,fill:"none",viewBox:"0 0 128 128",ref:ref,"aria-labelledby":titleId,...props},title?React.createElement("title",{id:titleId},title):null,React.createElement("path",{stroke:"currentColor",strokeWidth:5,d:"m41.23 109.769-23.404-84.56c-1.244-4.494 2.889-8.627 7.383-7.383l84.56 23.405c5.545 1.535 5.96 9.239.611 11.36L72.213 67.726a8 8 0 0 0-4.487 4.487L52.59 110.38c-2.121 5.349-9.825 4.934-11.36-.611Z"}));const ForwardRef=forwardRef(IconProductSpacesMono);export default ForwardRef;
1
+ import*as React from"react";import{forwardRef}from"react";const IconProductSpacesMono=({title,titleId,...props},ref)=>React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:128,height:128,fill:"none",viewBox:"0 0 128 128",ref:ref,"aria-labelledby":titleId,...props},title?React.createElement("title",{id:titleId},title):null,React.createElement("path",{stroke:"currentColor",strokeWidth:6,d:"m41.23 109.769-23.404-84.56c-1.244-4.494 2.889-8.627 7.383-7.383l84.56 23.405c5.545 1.535 5.96 9.239.611 11.36L72.213 67.726a8 8 0 0 0-4.487 4.487L52.59 110.38c-2.121 5.349-9.825 4.934-11.36-.611Z"}));const ForwardRef=forwardRef(IconProductSpacesMono);export default ForwardRef;
2
2
  //# sourceMappingURL=icon-product-spaces-mono.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/core/Icon/components/icon-product-spaces-mono.tsx"],"sourcesContent":["import * as React from \"react\";\nimport type { SVGProps } from \"react\";\nimport { Ref, forwardRef } from \"react\";\ninterface SVGRProps {\n title?: string;\n titleId?: string;\n}\nconst IconProductSpacesMono = ({\n title,\n titleId,\n ...props\n}: SVGProps<SVGSVGElement> & SVGRProps, ref: Ref<SVGSVGElement>) => <svg xmlns=\"http://www.w3.org/2000/svg\" width={128} height={128} fill=\"none\" viewBox=\"0 0 128 128\" ref={ref} aria-labelledby={titleId} {...props}>{title ? <title id={titleId}>{title}</title> : null}<path stroke=\"currentColor\" strokeWidth={5} d=\"m41.23 109.769-23.404-84.56c-1.244-4.494 2.889-8.627 7.383-7.383l84.56 23.405c5.545 1.535 5.96 9.239.611 11.36L72.213 67.726a8 8 0 0 0-4.487 4.487L52.59 110.38c-2.121 5.349-9.825 4.934-11.36-.611Z\" /></svg>;\nconst ForwardRef = forwardRef(IconProductSpacesMono);\nexport default ForwardRef;"],"names":["React","forwardRef","IconProductSpacesMono","title","titleId","props","ref","svg","xmlns","width","height","fill","viewBox","aria-labelledby","id","path","stroke","strokeWidth","d","ForwardRef"],"mappings":"AAAA,UAAYA,UAAW,OAAQ,AAE/B,QAAcC,UAAU,KAAQ,OAAQ,CAKxC,MAAMC,sBAAwB,CAAC,CAC7BC,KAAK,CACLC,OAAO,CACP,GAAGC,MACiC,CAAEC,MAA4B,oBAACC,OAAIC,MAAM,6BAA6BC,MAAO,IAAKC,OAAQ,IAAKC,KAAK,OAAOC,QAAQ,cAAcN,IAAKA,IAAKO,kBAAiBT,QAAU,GAAGC,KAAK,EAAGF,MAAQ,oBAACA,SAAMW,GAAIV,SAAUD,OAAiB,KAAK,oBAACY,QAAKC,OAAO,eAAeC,YAAa,EAAGC,EAAE,0MACxT,MAAMC,WAAalB,WAAWC,sBAC9B,gBAAeiB,UAAW"}
1
+ {"version":3,"sources":["../../../../src/core/Icon/components/icon-product-spaces-mono.tsx"],"sourcesContent":["import * as React from \"react\";\nimport type { SVGProps } from \"react\";\nimport { Ref, forwardRef } from \"react\";\ninterface SVGRProps {\n title?: string;\n titleId?: string;\n}\nconst IconProductSpacesMono = ({\n title,\n titleId,\n ...props\n}: SVGProps<SVGSVGElement> & SVGRProps, ref: Ref<SVGSVGElement>) => <svg xmlns=\"http://www.w3.org/2000/svg\" width={128} height={128} fill=\"none\" viewBox=\"0 0 128 128\" ref={ref} aria-labelledby={titleId} {...props}>{title ? <title id={titleId}>{title}</title> : null}<path stroke=\"currentColor\" strokeWidth={6} d=\"m41.23 109.769-23.404-84.56c-1.244-4.494 2.889-8.627 7.383-7.383l84.56 23.405c5.545 1.535 5.96 9.239.611 11.36L72.213 67.726a8 8 0 0 0-4.487 4.487L52.59 110.38c-2.121 5.349-9.825 4.934-11.36-.611Z\" /></svg>;\nconst ForwardRef = forwardRef(IconProductSpacesMono);\nexport default ForwardRef;"],"names":["React","forwardRef","IconProductSpacesMono","title","titleId","props","ref","svg","xmlns","width","height","fill","viewBox","aria-labelledby","id","path","stroke","strokeWidth","d","ForwardRef"],"mappings":"AAAA,UAAYA,UAAW,OAAQ,AAE/B,QAAcC,UAAU,KAAQ,OAAQ,CAKxC,MAAMC,sBAAwB,CAAC,CAC7BC,KAAK,CACLC,OAAO,CACP,GAAGC,MACiC,CAAEC,MAA4B,oBAACC,OAAIC,MAAM,6BAA6BC,MAAO,IAAKC,OAAQ,IAAKC,KAAK,OAAOC,QAAQ,cAAcN,IAAKA,IAAKO,kBAAiBT,QAAU,GAAGC,KAAK,EAAGF,MAAQ,oBAACA,SAAMW,GAAIV,SAAUD,OAAiB,KAAK,oBAACY,QAAKC,OAAO,eAAeC,YAAa,EAAGC,EAAE,0MACxT,MAAMC,WAAalB,WAAWC,sBAC9B,gBAAeiB,UAAW"}
@@ -1,2 +1,2 @@
1
- import React from"react";import{PanelTitle}from"./utils";const MeganavCustomerStories=({customerStoriesHighlight,title,link})=>{const{companyName,companyDesc,companyLink,companyLogo,companyLogoDark}=customerStoriesHighlight;return React.createElement("div",{className:"mt-3"},React.createElement(PanelTitle,{title:title,link:link}),React.createElement("a",{href:companyLink,className:"flex flex-col gap-y-2.5 p-3 pointer-events-auto rounded-lg transition-colors group/customer-story-highlight hover:bg-neutral-100 dark:hover:bg-neutral-1200 focus-base active:bg-neutral-200 dark:active:bg-neutral-1100"},React.createElement("figure",{className:"rounded bg-neutral-100 dark:bg-neutral-1200 group-hover/customer-story-highlight:bg-neutral-000 dark:group-hover/customer-story-highlight:bg-neutral-1300 flex justify-center items-center gap-4 h-[180px]"},React.createElement("img",{src:companyLogo,alt:companyName,className:"w-[180px] dark:hidden"}),companyLogoDark&&React.createElement("img",{src:companyLogoDark,alt:companyName,className:"w-[180px] hidden dark:block"})),React.createElement("span",{className:"flex flex-col gap-2"},React.createElement("span",{className:"ui-text-p4 text-neutral-1000 dark:text-neutral-300"},React.createElement("strong",{className:"font-semibold text-neutral-1300 dark:text-neutral-000"},companyName)," ",companyDesc))))};export default MeganavCustomerStories;
1
+ import React from"react";import{PanelTitle}from"./utils";const MeganavCustomerStories=({customerStoriesHighlight,title,link})=>{const{companyName,companyDesc,companyLink,companyLogo,companyLogoDark}=customerStoriesHighlight;return React.createElement("div",{className:"mt-3"},React.createElement(PanelTitle,{title:title,link:link}),React.createElement("a",{href:companyLink,className:"flex flex-col gap-y-2.5 p-3 pointer-events-auto rounded-lg transition-colors group/customer-story-highlight hover:bg-neutral-100 dark:hover:bg-neutral-1200 focus-base active:bg-neutral-200 dark:active:bg-neutral-1100"},React.createElement("figure",{className:"rounded bg-neutral-100 dark:bg-neutral-1200 group-hover/customer-story-highlight:bg-neutral-000 dark:group-hover/customer-story-highlight:bg-neutral-1300 flex justify-center items-center gap-4 h-[180px]"},React.createElement("img",{src:companyLogo,alt:companyName,className:"max-h-[120px] dark:hidden"}),companyLogoDark&&React.createElement("img",{src:companyLogoDark,alt:companyName,className:"max-h-[120px] hidden dark:block"})),React.createElement("span",{className:"flex flex-col gap-2"},React.createElement("span",{className:"ui-text-p4 text-neutral-1000 dark:text-neutral-300"},React.createElement("strong",{className:"font-semibold text-neutral-1300 dark:text-neutral-000"},companyName)," ",companyDesc))))};export default MeganavCustomerStories;
2
2
  //# sourceMappingURL=MeganavCustomerStories.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/core/Meganav/MeganavCustomerStories.tsx"],"sourcesContent":["import React from \"react\";\nimport { PanelTitle } from \"./utils\";\n\nexport type CustomerStoryHighlight = {\n companyName: string;\n companyDesc: string;\n companyLink: string;\n companyLogo: string;\n companyLogoDark?: string;\n};\n\nconst MeganavCustomerStories = ({\n customerStoriesHighlight,\n title,\n link,\n}: {\n customerStoriesHighlight: CustomerStoryHighlight;\n title: string;\n link: string;\n}) => {\n const {\n companyName,\n companyDesc,\n companyLink,\n companyLogo,\n companyLogoDark,\n } = customerStoriesHighlight;\n return (\n <div className=\"mt-3\">\n <PanelTitle title={title} link={link} />\n <a\n href={companyLink}\n className=\"flex flex-col gap-y-2.5 p-3 pointer-events-auto rounded-lg\n transition-colors group/customer-story-highlight \n hover:bg-neutral-100 dark:hover:bg-neutral-1200 focus-base\n active:bg-neutral-200 dark:active:bg-neutral-1100\"\n >\n <figure\n className=\"rounded bg-neutral-100 dark:bg-neutral-1200 \n group-hover/customer-story-highlight:bg-neutral-000 \n dark:group-hover/customer-story-highlight:bg-neutral-1300\n flex justify-center items-center gap-4 h-[180px]\"\n >\n <img\n src={companyLogo}\n alt={companyName}\n className=\"w-[180px] dark:hidden\"\n />\n {companyLogoDark && (\n <img\n src={companyLogoDark}\n alt={companyName}\n className=\"w-[180px] hidden dark:block\"\n />\n )}\n </figure>\n <span className=\"flex flex-col gap-2\">\n <span className=\"ui-text-p4 text-neutral-1000 dark:text-neutral-300\">\n <strong className=\"font-semibold text-neutral-1300 dark:text-neutral-000\">\n {companyName}\n </strong>{\" \"}\n {companyDesc}\n </span>\n </span>\n </a>\n </div>\n );\n};\n\nexport default MeganavCustomerStories;\n"],"names":["React","PanelTitle","MeganavCustomerStories","customerStoriesHighlight","title","link","companyName","companyDesc","companyLink","companyLogo","companyLogoDark","div","className","a","href","figure","img","src","alt","span","strong"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAASC,UAAU,KAAQ,SAAU,CAUrC,MAAMC,uBAAyB,CAAC,CAC9BC,wBAAwB,CACxBC,KAAK,CACLC,IAAI,CAKL,IACC,KAAM,CACJC,WAAW,CACXC,WAAW,CACXC,WAAW,CACXC,WAAW,CACXC,eAAe,CAChB,CAAGP,yBACJ,OACE,oBAACQ,OAAIC,UAAU,QACb,oBAACX,YAAWG,MAAOA,MAAOC,KAAMA,OAChC,oBAACQ,KACCC,KAAMN,YACNI,UAAU,6NAKV,oBAACG,UACCH,UAAU,gNAKV,oBAACI,OACCC,IAAKR,YACLS,IAAKZ,YACLM,UAAU,0BAEXF,iBACC,oBAACM,OACCC,IAAKP,gBACLQ,IAAKZ,YACLM,UAAU,iCAIhB,oBAACO,QAAKP,UAAU,uBACd,oBAACO,QAAKP,UAAU,sDACd,oBAACQ,UAAOR,UAAU,yDACfN,aACO,IACTC,eAMb,CAEA,gBAAeL,sBAAuB"}
1
+ {"version":3,"sources":["../../../src/core/Meganav/MeganavCustomerStories.tsx"],"sourcesContent":["import React from \"react\";\nimport { PanelTitle } from \"./utils\";\n\nexport type CustomerStoryHighlight = {\n companyName: string;\n companyDesc: string;\n companyLink: string;\n companyLogo: string;\n companyLogoDark?: string;\n};\n\nconst MeganavCustomerStories = ({\n customerStoriesHighlight,\n title,\n link,\n}: {\n customerStoriesHighlight: CustomerStoryHighlight;\n title: string;\n link: string;\n}) => {\n const {\n companyName,\n companyDesc,\n companyLink,\n companyLogo,\n companyLogoDark,\n } = customerStoriesHighlight;\n return (\n <div className=\"mt-3\">\n <PanelTitle title={title} link={link} />\n <a\n href={companyLink}\n className=\"flex flex-col gap-y-2.5 p-3 pointer-events-auto rounded-lg\n transition-colors group/customer-story-highlight \n hover:bg-neutral-100 dark:hover:bg-neutral-1200 focus-base\n active:bg-neutral-200 dark:active:bg-neutral-1100\"\n >\n <figure\n className=\"rounded bg-neutral-100 dark:bg-neutral-1200 \n group-hover/customer-story-highlight:bg-neutral-000 \n dark:group-hover/customer-story-highlight:bg-neutral-1300\n flex justify-center items-center gap-4 h-[180px]\"\n >\n <img\n src={companyLogo}\n alt={companyName}\n className=\"max-h-[120px] dark:hidden\"\n />\n {companyLogoDark && (\n <img\n src={companyLogoDark}\n alt={companyName}\n className=\"max-h-[120px] hidden dark:block\"\n />\n )}\n </figure>\n <span className=\"flex flex-col gap-2\">\n <span className=\"ui-text-p4 text-neutral-1000 dark:text-neutral-300\">\n <strong className=\"font-semibold text-neutral-1300 dark:text-neutral-000\">\n {companyName}\n </strong>{\" \"}\n {companyDesc}\n </span>\n </span>\n </a>\n </div>\n );\n};\n\nexport default MeganavCustomerStories;\n"],"names":["React","PanelTitle","MeganavCustomerStories","customerStoriesHighlight","title","link","companyName","companyDesc","companyLink","companyLogo","companyLogoDark","div","className","a","href","figure","img","src","alt","span","strong"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAASC,UAAU,KAAQ,SAAU,CAUrC,MAAMC,uBAAyB,CAAC,CAC9BC,wBAAwB,CACxBC,KAAK,CACLC,IAAI,CAKL,IACC,KAAM,CACJC,WAAW,CACXC,WAAW,CACXC,WAAW,CACXC,WAAW,CACXC,eAAe,CAChB,CAAGP,yBACJ,OACE,oBAACQ,OAAIC,UAAU,QACb,oBAACX,YAAWG,MAAOA,MAAOC,KAAMA,OAChC,oBAACQ,KACCC,KAAMN,YACNI,UAAU,6NAKV,oBAACG,UACCH,UAAU,gNAKV,oBAACI,OACCC,IAAKR,YACLS,IAAKZ,YACLM,UAAU,8BAEXF,iBACC,oBAACM,OACCC,IAAKP,gBACLQ,IAAKZ,YACLM,UAAU,qCAIhB,oBAACO,QAAKP,UAAU,uBACd,oBAACO,QAAKP,UAAU,sDACd,oBAACQ,UAAOR,UAAU,yDACfN,aACO,IACTC,eAMb,CAEA,gBAAeL,sBAAuB"}
@@ -1,2 +1,2 @@
1
- import React from"react";import Accordion from"../Accordion";import{menuItemLinks}from"./data";import cn from"../utils/cn";export const MeganavMobile=({navItems})=>{const menuItemClassname="text-[18px] py-3 font-bold text-neutral-1000 dark:text-neutral-000";return React.createElement("div",{className:"overflow-y-auto"},React.createElement(Accordion,{theme:"transparent",className:"px-4 pt-4",data:navItems,icons:{closed:{name:"icon-gui-chevron-down-outline"},open:{name:"icon-gui-chevron-up-outline"}},options:{autoClose:true,hideBorders:true,headerCSS:`px-0 ${menuItemClassname}`,contentCSS:"px-0",selectedHeaderCSS:"text-neutral-1300 dark:text-neutral-000",rowIconSize:"24px"}}),menuItemLinks&&React.createElement("div",{className:"mb-3"},menuItemLinks.map(link=>React.createElement("a",{href:link.link,key:link.name,className:cn("px-4 w-full block ui-text-p1",menuItemClassname)},link.name))))};
1
+ import React from"react";import Accordion from"../Accordion";import{menuItemLinks}from"./data";import cn from"../utils/cn";export const MeganavMobile=({navItems})=>{const menuItemClassname="text-[18px] py-3 font-bold text-neutral-1000 dark:text-neutral-000 hover:text-neutral-1000 dark:hover:text-neutral-000 active:text-neutral-1000 dark:active:text-neutral-000";return React.createElement("div",{className:"overflow-y-auto"},React.createElement(Accordion,{theme:"transparent",className:"px-4 pt-4",data:navItems,icons:{closed:{name:"icon-gui-chevron-down-outline"},open:{name:"icon-gui-chevron-up-outline"}},options:{autoClose:true,hideBorders:true,headerCSS:`px-0 ${menuItemClassname}`,contentCSS:"px-0",selectedHeaderCSS:"text-neutral-1300 dark:text-neutral-000",rowIconSize:"24px"}}),menuItemLinks&&React.createElement("div",{className:"mb-3"},menuItemLinks.map(link=>React.createElement("a",{href:link.link,key:link.name,className:cn("px-4 w-full block ui-text-p1",menuItemClassname)},link.name))))};
2
2
  //# sourceMappingURL=MeganavMobile.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/core/Meganav/MeganavMobile.tsx"],"sourcesContent":["import React from \"react\";\nimport Accordion from \"../Accordion\";\nimport { AccordionData } from \"../Accordion/types\";\nimport { menuItemLinks } from \"./data\";\nimport cn from \"../utils/cn\";\n\nexport const MeganavMobile = ({ navItems }: { navItems: AccordionData[] }) => {\n const menuItemClassname =\n \"text-[18px] py-3 font-bold text-neutral-1000 dark:text-neutral-000\";\n return (\n <div className=\"overflow-y-auto\">\n <Accordion\n theme=\"transparent\"\n className=\"px-4 pt-4\"\n data={navItems}\n icons={{\n closed: { name: \"icon-gui-chevron-down-outline\" },\n open: { name: \"icon-gui-chevron-up-outline\" },\n }}\n options={{\n autoClose: true,\n hideBorders: true,\n headerCSS: `px-0 ${menuItemClassname}`,\n contentCSS: \"px-0\",\n selectedHeaderCSS: \"text-neutral-1300 dark:text-neutral-000\",\n rowIconSize: \"24px\",\n }}\n />\n {menuItemLinks && (\n <div className=\"mb-3\">\n {menuItemLinks.map((link) => (\n <a\n href={link.link}\n key={link.name}\n className={cn(\"px-4 w-full block ui-text-p1\", menuItemClassname)}\n >\n {link.name}\n </a>\n ))}\n </div>\n )}\n </div>\n );\n};\n"],"names":["React","Accordion","menuItemLinks","cn","MeganavMobile","navItems","menuItemClassname","div","className","theme","data","icons","closed","name","open","options","autoClose","hideBorders","headerCSS","contentCSS","selectedHeaderCSS","rowIconSize","map","link","a","href","key"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAAOC,cAAe,cAAe,AAErC,QAASC,aAAa,KAAQ,QAAS,AACvC,QAAOC,OAAQ,aAAc,AAE7B,QAAO,MAAMC,cAAgB,CAAC,CAAEC,QAAQ,CAAiC,IACvE,MAAMC,kBACJ,qEACF,OACE,oBAACC,OAAIC,UAAU,mBACb,oBAACP,WACCQ,MAAM,cACND,UAAU,YACVE,KAAML,SACNM,MAAO,CACLC,OAAQ,CAAEC,KAAM,+BAAgC,EAChDC,KAAM,CAAED,KAAM,6BAA8B,CAC9C,EACAE,QAAS,CACPC,UAAW,KACXC,YAAa,KACbC,UAAW,CAAC,KAAK,EAAEZ,kBAAkB,CAAC,CACtCa,WAAY,OACZC,kBAAmB,0CACnBC,YAAa,MACf,IAEDnB,eACC,oBAACK,OAAIC,UAAU,QACZN,cAAcoB,GAAG,CAAC,AAACC,MAClB,oBAACC,KACCC,KAAMF,KAAKA,IAAI,CACfG,IAAKH,KAAKV,IAAI,CACdL,UAAWL,GAAG,+BAAgCG,oBAE7CiB,KAAKV,IAAI,IAOxB,CAAE"}
1
+ {"version":3,"sources":["../../../src/core/Meganav/MeganavMobile.tsx"],"sourcesContent":["import React from \"react\";\nimport Accordion from \"../Accordion\";\nimport { AccordionData } from \"../Accordion/types\";\nimport { menuItemLinks } from \"./data\";\nimport cn from \"../utils/cn\";\n\nexport const MeganavMobile = ({ navItems }: { navItems: AccordionData[] }) => {\n const menuItemClassname =\n \"text-[18px] py-3 font-bold text-neutral-1000 dark:text-neutral-000 hover:text-neutral-1000 dark:hover:text-neutral-000 active:text-neutral-1000 dark:active:text-neutral-000\";\n return (\n <div className=\"overflow-y-auto\">\n <Accordion\n theme=\"transparent\"\n className=\"px-4 pt-4\"\n data={navItems}\n icons={{\n closed: { name: \"icon-gui-chevron-down-outline\" },\n open: { name: \"icon-gui-chevron-up-outline\" },\n }}\n options={{\n autoClose: true,\n hideBorders: true,\n headerCSS: `px-0 ${menuItemClassname}`,\n contentCSS: \"px-0\",\n selectedHeaderCSS: \"text-neutral-1300 dark:text-neutral-000\",\n rowIconSize: \"24px\",\n }}\n />\n {menuItemLinks && (\n <div className=\"mb-3\">\n {menuItemLinks.map((link) => (\n <a\n href={link.link}\n key={link.name}\n className={cn(\"px-4 w-full block ui-text-p1\", menuItemClassname)}\n >\n {link.name}\n </a>\n ))}\n </div>\n )}\n </div>\n );\n};\n"],"names":["React","Accordion","menuItemLinks","cn","MeganavMobile","navItems","menuItemClassname","div","className","theme","data","icons","closed","name","open","options","autoClose","hideBorders","headerCSS","contentCSS","selectedHeaderCSS","rowIconSize","map","link","a","href","key"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAAOC,cAAe,cAAe,AAErC,QAASC,aAAa,KAAQ,QAAS,AACvC,QAAOC,OAAQ,aAAc,AAE7B,QAAO,MAAMC,cAAgB,CAAC,CAAEC,QAAQ,CAAiC,IACvE,MAAMC,kBACJ,+KACF,OACE,oBAACC,OAAIC,UAAU,mBACb,oBAACP,WACCQ,MAAM,cACND,UAAU,YACVE,KAAML,SACNM,MAAO,CACLC,OAAQ,CAAEC,KAAM,+BAAgC,EAChDC,KAAM,CAAED,KAAM,6BAA8B,CAC9C,EACAE,QAAS,CACPC,UAAW,KACXC,YAAa,KACbC,UAAW,CAAC,KAAK,EAAEZ,kBAAkB,CAAC,CACtCa,WAAY,OACZC,kBAAmB,0CACnBC,YAAa,MACf,IAEDnB,eACC,oBAACK,OAAIC,UAAU,QACZN,cAAcoB,GAAG,CAAC,AAACC,MAClB,oBAACC,KACCC,KAAMF,KAAKA,IAAI,CACfG,IAAKH,KAAKV,IAAI,CACdL,UAAWL,GAAG,+BAAgCG,oBAE7CiB,KAAKV,IAAI,IAOxB,CAAE"}
@@ -1,2 +1,2 @@
1
- import React from"react";import{productsForNav}from"./data";import{productNames}from"../ProductTile/data";import MeganavPanelItemLinks from"./MeganavPanelItemLinks";import MeganavTile from"./MeganavTile";import cn from"../utils/cn";const panelClassName="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-x-4 bg-neutral-000 dark:bg-neutral-1300 m-0 md:m-6";export const MeganavPanel=({displayProductTile,panelLeft,panelMiddleItems,panelRightItems,panelRightBottom})=>{const renderProductsGrid=()=>React.createElement("div",{className:"grid grid-cols-1 sm:grid-cols-2 col-span-1 sm:col-span-2"},productNames.map(product=>React.createElement(MeganavTile,{key:product,productName:product,link:productsForNav[product].link??"#",animateIcons:true})));return React.createElement("div",{className:cn(panelClassName,"items-start")},displayProductTile?renderProductsGrid():React.createElement(React.Fragment,null,panelLeft,panelMiddleItems),React.createElement("div",{className:"flex flex-col justify-between gap-y-6 mt-3 self-stretch"},panelRightItems?.map(rightItem=>React.createElement(MeganavPanelItemLinks,{key:rightItem.link?.label||rightItem.label,label:rightItem.label,listItems:rightItem.listItems,link:rightItem.link})),panelRightBottom&&React.createElement("div",{className:"items-end mt-4 md:mt-0"},panelRightBottom)))};export const MeganavPanelFullwidth=({panelItems})=>React.createElement("div",{className:panelClassName},panelItems.map(item=>React.createElement(MeganavTile,{key:item.label,navLabel:item.label,navIcon:item.icon,navDescription:item.description,link:item.link,showAblyText:false})));
1
+ import React from"react";import{productsForNav}from"./data";import{productNames}from"../ProductTile/data";import MeganavPanelItemLinks from"./MeganavPanelItemLinks";import MeganavTile from"./MeganavTile";import cn from"../utils/cn";const panelClassName="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-x-4 bg-neutral-000 dark:bg-neutral-1300 m-0 md:m-6";export const MeganavPanel=({displayProductTile,panelLeft,panelMiddleItems,panelRightItems,panelRightBottom,panelRightBottomClassName})=>{const renderProductsGrid=()=>React.createElement("div",{className:"grid grid-cols-1 sm:grid-cols-2 col-span-1 sm:col-span-2"},productNames.map(product=>React.createElement(MeganavTile,{key:product,productName:product,link:productsForNav[product].link??"#",animateIcons:true})));return React.createElement("div",{className:cn(panelClassName,"items-start")},displayProductTile?renderProductsGrid():React.createElement(React.Fragment,null,panelLeft,panelMiddleItems),React.createElement("div",{className:"flex flex-col justify-between gap-y-6 mt-3 self-stretch"},panelRightItems?.map(rightItem=>React.createElement(MeganavPanelItemLinks,{key:rightItem.link?.label||rightItem.label,label:rightItem.label,listItems:rightItem.listItems,link:rightItem.link})),panelRightBottom&&React.createElement("div",{className:cn("items-end mt-4 md:mt-0",panelRightBottomClassName)},panelRightBottom)))};export const MeganavPanelFullwidth=({panelItems})=>React.createElement("div",{className:panelClassName},panelItems.map(item=>React.createElement(MeganavTile,{key:item.label,navLabel:item.label,navIcon:item.icon,navDescription:item.description,link:item.link,showAblyText:false})));
2
2
  //# sourceMappingURL=MeganavPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/core/Meganav/MeganavPanel.tsx"],"sourcesContent":["import React from \"react\";\nimport { FlyoutPanelList, productsForNav } from \"./data\";\nimport { ProductName, productNames } from \"../ProductTile/data\";\nimport MeganavPanelItemLinks, {\n MeganavPanelItemLink,\n} from \"./MeganavPanelItemLinks\";\nimport MeganavTile from \"./MeganavTile\";\nimport cn from \"../utils/cn\";\n\ntype MeganavPanelProps = {\n displayProductTile?: boolean;\n panelLeft?: React.ReactNode;\n panelMiddleItems?: React.ReactNode;\n panelRightItems?: MeganavPanelItemLink[];\n panelRightBottom?: React.ReactNode;\n};\n\nconst panelClassName =\n \"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-x-4 bg-neutral-000 dark:bg-neutral-1300 m-0 md:m-6\";\n\nexport const MeganavPanel = ({\n displayProductTile,\n panelLeft,\n panelMiddleItems,\n panelRightItems,\n panelRightBottom,\n}: MeganavPanelProps) => {\n const renderProductsGrid = () => (\n <div className=\"grid grid-cols-1 sm:grid-cols-2 col-span-1 sm:col-span-2\">\n {productNames.map((product) => (\n <MeganavTile\n key={product}\n productName={product as ProductName}\n link={productsForNav[product].link ?? \"#\"}\n animateIcons\n />\n ))}\n </div>\n );\n\n return (\n <div className={cn(panelClassName, \"items-start\")}>\n {displayProductTile ? (\n renderProductsGrid()\n ) : (\n <>\n {panelLeft}\n {panelMiddleItems}\n </>\n )}\n\n <div className=\"flex flex-col justify-between gap-y-6 mt-3 self-stretch\">\n {panelRightItems?.map((rightItem) => (\n <MeganavPanelItemLinks\n key={rightItem.link?.label || rightItem.label}\n label={rightItem.label}\n listItems={rightItem.listItems}\n link={rightItem.link}\n />\n ))}\n {panelRightBottom && (\n <div className=\"items-end mt-4 md:mt-0\">{panelRightBottom}</div>\n )}\n </div>\n </div>\n );\n};\n\nexport const MeganavPanelFullwidth = ({\n panelItems,\n}: {\n panelItems: FlyoutPanelList[];\n}) => (\n <div className={panelClassName}>\n {panelItems.map((item) => (\n <MeganavTile\n key={item.label}\n navLabel={item.label}\n navIcon={item.icon}\n navDescription={item.description}\n link={item.link}\n showAblyText={false}\n />\n ))}\n </div>\n);\n"],"names":["React","productsForNav","productNames","MeganavPanelItemLinks","MeganavTile","cn","panelClassName","MeganavPanel","displayProductTile","panelLeft","panelMiddleItems","panelRightItems","panelRightBottom","renderProductsGrid","div","className","map","product","key","productName","link","animateIcons","rightItem","label","listItems","MeganavPanelFullwidth","panelItems","item","navLabel","navIcon","icon","navDescription","description","showAblyText"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAA0BC,cAAc,KAAQ,QAAS,AACzD,QAAsBC,YAAY,KAAQ,qBAAsB,AAChE,QAAOC,0BAEA,yBAA0B,AACjC,QAAOC,gBAAiB,eAAgB,AACxC,QAAOC,OAAQ,aAAc,CAU7B,MAAMC,eACJ,uGAEF,QAAO,MAAMC,aAAe,CAAC,CAC3BC,kBAAkB,CAClBC,SAAS,CACTC,gBAAgB,CAChBC,eAAe,CACfC,gBAAgB,CACE,IAClB,MAAMC,mBAAqB,IACzB,oBAACC,OAAIC,UAAU,4DACZb,aAAac,GAAG,CAAC,AAACC,SACjB,oBAACb,aACCc,IAAKD,QACLE,YAAaF,QACbG,KAAMnB,cAAc,CAACgB,QAAQ,CAACG,IAAI,EAAI,IACtCC,aAAAA,SAMR,OACE,oBAACP,OAAIC,UAAWV,GAAGC,eAAgB,gBAChCE,mBACCK,qBAEA,wCACGJ,UACAC,kBAIL,oBAACI,OAAIC,UAAU,2DACZJ,iBAAiBK,IAAI,AAACM,WACrB,oBAACnB,uBACCe,IAAKI,UAAUF,IAAI,EAAEG,OAASD,UAAUC,KAAK,CAC7CA,MAAOD,UAAUC,KAAK,CACtBC,UAAWF,UAAUE,SAAS,CAC9BJ,KAAME,UAAUF,IAAI,IAGvBR,kBACC,oBAACE,OAAIC,UAAU,0BAA0BH,mBAKnD,CAAE,AAEF,QAAO,MAAMa,sBAAwB,CAAC,CACpCC,UAAU,CAGX,GACC,oBAACZ,OAAIC,UAAWT,gBACboB,WAAWV,GAAG,CAAC,AAACW,MACf,oBAACvB,aACCc,IAAKS,KAAKJ,KAAK,CACfK,SAAUD,KAAKJ,KAAK,CACpBM,QAASF,KAAKG,IAAI,CAClBC,eAAgBJ,KAAKK,WAAW,CAChCZ,KAAMO,KAAKP,IAAI,CACfa,aAAc,SAIpB"}
1
+ {"version":3,"sources":["../../../src/core/Meganav/MeganavPanel.tsx"],"sourcesContent":["import React from \"react\";\nimport { FlyoutPanelList, productsForNav } from \"./data\";\nimport { ProductName, productNames } from \"../ProductTile/data\";\nimport MeganavPanelItemLinks, {\n MeganavPanelItemLink,\n} from \"./MeganavPanelItemLinks\";\nimport MeganavTile from \"./MeganavTile\";\nimport cn from \"../utils/cn\";\n\ntype MeganavPanelProps = {\n displayProductTile?: boolean;\n panelLeft?: React.ReactNode;\n panelMiddleItems?: React.ReactNode;\n panelRightItems?: MeganavPanelItemLink[];\n panelRightBottom?: React.ReactNode;\n panelRightBottomClassName?: string;\n};\n\nconst panelClassName =\n \"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-x-4 bg-neutral-000 dark:bg-neutral-1300 m-0 md:m-6\";\n\nexport const MeganavPanel = ({\n displayProductTile,\n panelLeft,\n panelMiddleItems,\n panelRightItems,\n panelRightBottom,\n panelRightBottomClassName,\n}: MeganavPanelProps) => {\n const renderProductsGrid = () => (\n <div className=\"grid grid-cols-1 sm:grid-cols-2 col-span-1 sm:col-span-2\">\n {productNames.map((product) => (\n <MeganavTile\n key={product}\n productName={product as ProductName}\n link={productsForNav[product].link ?? \"#\"}\n animateIcons\n />\n ))}\n </div>\n );\n\n return (\n <div className={cn(panelClassName, \"items-start\")}>\n {displayProductTile ? (\n renderProductsGrid()\n ) : (\n <>\n {panelLeft}\n {panelMiddleItems}\n </>\n )}\n\n <div className=\"flex flex-col justify-between gap-y-6 mt-3 self-stretch\">\n {panelRightItems?.map((rightItem) => (\n <MeganavPanelItemLinks\n key={rightItem.link?.label || rightItem.label}\n label={rightItem.label}\n listItems={rightItem.listItems}\n link={rightItem.link}\n />\n ))}\n {panelRightBottom && (\n <div\n className={cn(\"items-end mt-4 md:mt-0\", panelRightBottomClassName)}\n >\n {panelRightBottom}\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport const MeganavPanelFullwidth = ({\n panelItems,\n}: {\n panelItems: FlyoutPanelList[];\n}) => (\n <div className={panelClassName}>\n {panelItems.map((item) => (\n <MeganavTile\n key={item.label}\n navLabel={item.label}\n navIcon={item.icon}\n navDescription={item.description}\n link={item.link}\n showAblyText={false}\n />\n ))}\n </div>\n);\n"],"names":["React","productsForNav","productNames","MeganavPanelItemLinks","MeganavTile","cn","panelClassName","MeganavPanel","displayProductTile","panelLeft","panelMiddleItems","panelRightItems","panelRightBottom","panelRightBottomClassName","renderProductsGrid","div","className","map","product","key","productName","link","animateIcons","rightItem","label","listItems","MeganavPanelFullwidth","panelItems","item","navLabel","navIcon","icon","navDescription","description","showAblyText"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAA0BC,cAAc,KAAQ,QAAS,AACzD,QAAsBC,YAAY,KAAQ,qBAAsB,AAChE,QAAOC,0BAEA,yBAA0B,AACjC,QAAOC,gBAAiB,eAAgB,AACxC,QAAOC,OAAQ,aAAc,CAW7B,MAAMC,eACJ,uGAEF,QAAO,MAAMC,aAAe,CAAC,CAC3BC,kBAAkB,CAClBC,SAAS,CACTC,gBAAgB,CAChBC,eAAe,CACfC,gBAAgB,CAChBC,yBAAyB,CACP,IAClB,MAAMC,mBAAqB,IACzB,oBAACC,OAAIC,UAAU,4DACZd,aAAae,GAAG,CAAC,AAACC,SACjB,oBAACd,aACCe,IAAKD,QACLE,YAAaF,QACbG,KAAMpB,cAAc,CAACiB,QAAQ,CAACG,IAAI,EAAI,IACtCC,aAAAA,SAMR,OACE,oBAACP,OAAIC,UAAWX,GAAGC,eAAgB,gBAChCE,mBACCM,qBAEA,wCACGL,UACAC,kBAIL,oBAACK,OAAIC,UAAU,2DACZL,iBAAiBM,IAAI,AAACM,WACrB,oBAACpB,uBACCgB,IAAKI,UAAUF,IAAI,EAAEG,OAASD,UAAUC,KAAK,CAC7CA,MAAOD,UAAUC,KAAK,CACtBC,UAAWF,UAAUE,SAAS,CAC9BJ,KAAME,UAAUF,IAAI,IAGvBT,kBACC,oBAACG,OACCC,UAAWX,GAAG,yBAA0BQ,4BAEvCD,mBAMb,CAAE,AAEF,QAAO,MAAMc,sBAAwB,CAAC,CACpCC,UAAU,CAGX,GACC,oBAACZ,OAAIC,UAAWV,gBACbqB,WAAWV,GAAG,CAAC,AAACW,MACf,oBAACxB,aACCe,IAAKS,KAAKJ,KAAK,CACfK,SAAUD,KAAKJ,KAAK,CACpBM,QAASF,KAAKG,IAAI,CAClBC,eAAgBJ,KAAKK,WAAW,CAChCZ,KAAMO,KAAKP,IAAI,CACfa,aAAc,SAIpB"}
@@ -1,2 +1,2 @@
1
- import React from"react";import Icon from"../Icon";import cn from"../utils/cn";import Badge from"../Badge";import{PanelTitle}from"./utils";const MeganavPanelItemLinks=({label,listItems,link})=>{return React.createElement("ul",null,React.createElement(PanelTitle,{title:link?.label??label??"",link:link?.link??""}),listItems&&listItems.map(listItem=>React.createElement("li",{className:cn("list-none py-2.5 md:py-2 px-3 my-0 flex gap-x-2.5 rounded-lg group hover:cursor-pointer","hover:bg-neutral-100 dark:hover:bg-neutral-1200 active:bg-neutral-200 dark:active:bg-neutral-1100",listItem.isMobile?"md:hidden":"md:flex"),key:listItem.label},listItem.icon&&React.createElement(Icon,{name:listItem.icon,size:"1.25rem",additionalCSS:"text-neutral-1000 dark:text-neutral-300"}),React.createElement("a",{className:"pointer-events-auto ui-text-label2 md:ui-text-label3 font-semibold text-neutral-1000 dark:text-neutral-300 group-hover:text-neutral-1300 dark:group-hover:text-neutral-000 focus-base",href:listItem.link},listItem.label),listItem.badge&&React.createElement(Badge,{size:"xs"},listItem.badge))))};export default MeganavPanelItemLinks;
1
+ import React from"react";import Icon from"../Icon";import cn from"../utils/cn";import Badge from"../Badge";import{PanelTitle}from"./utils";const MeganavPanelItemLinks=({label,listItems,link})=>{return React.createElement("ul",null,React.createElement(PanelTitle,{title:link?.label??label??"",link:link?.link??""}),listItems&&listItems.map(listItem=>React.createElement("li",{className:cn("list-none py-2.5 md:py-2 px-3 my-0 flex gap-x-2.5 rounded-lg group hover:cursor-pointer","hover:bg-neutral-100 dark:hover:bg-neutral-1200 active:bg-neutral-200 dark:active:bg-neutral-1100",listItem.isMobile?"md:hidden":"md:flex"),key:listItem.label},listItem.icon&&React.createElement(Icon,{name:listItem.icon,size:"1.25rem",additionalCSS:"text-neutral-1000 dark:text-neutral-300"}),React.createElement("a",{className:"pointer-events-auto font-sans text-label2 md:text-label3 font-semibold text-neutral-1000 dark:text-neutral-300 group-hover:text-neutral-1300 dark:group-hover:text-neutral-000 focus-base",href:listItem.link},listItem.label),listItem.badge&&React.createElement(Badge,{size:"xs"},listItem.badge))))};export default MeganavPanelItemLinks;
2
2
  //# sourceMappingURL=MeganavPanelItemLinks.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/core/Meganav/MeganavPanelItemLinks.tsx"],"sourcesContent":["import React from \"react\";\nimport Icon from \"../Icon\";\nimport cn from \"../utils/cn\";\nimport Badge from \"../Badge\";\nimport { PanelTitle } from \"./utils\";\nimport { IconName } from \"../Icon/types\";\nimport { FlyoutPanelList } from \"./data\";\n\nexport type MeganavPanelItemLink = {\n label?: string;\n listItems: FlyoutPanelList[];\n icon?: IconName;\n link?: {\n label: string;\n link: string;\n };\n};\n\nconst MeganavPanelItemLinks = ({\n label,\n listItems,\n link,\n}: MeganavPanelItemLink) => {\n return (\n <ul>\n <PanelTitle title={link?.label ?? label ?? \"\"} link={link?.link ?? \"\"} />\n\n {listItems &&\n listItems.map((listItem) => (\n <li\n className={cn(\n \"list-none py-2.5 md:py-2 px-3 my-0 flex gap-x-2.5 rounded-lg group hover:cursor-pointer\",\n \"hover:bg-neutral-100 dark:hover:bg-neutral-1200 active:bg-neutral-200 dark:active:bg-neutral-1100\",\n listItem.isMobile ? \"md:hidden\" : \"md:flex\",\n )}\n key={listItem.label}\n >\n {listItem.icon && (\n <Icon\n name={listItem.icon}\n size=\"1.25rem\"\n additionalCSS=\"text-neutral-1000 dark:text-neutral-300\"\n />\n )}\n <a\n className=\"pointer-events-auto ui-text-label2 md:ui-text-label3 font-semibold text-neutral-1000 dark:text-neutral-300 \n group-hover:text-neutral-1300 dark:group-hover:text-neutral-000 focus-base\"\n href={listItem.link}\n >\n {listItem.label}\n </a>\n {listItem.badge && <Badge size=\"xs\">{listItem.badge}</Badge>}\n </li>\n ))}\n </ul>\n );\n};\n\nexport default MeganavPanelItemLinks;\n"],"names":["React","Icon","cn","Badge","PanelTitle","MeganavPanelItemLinks","label","listItems","link","ul","title","map","listItem","li","className","isMobile","key","icon","name","size","additionalCSS","a","href","badge"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAAOC,SAAU,SAAU,AAC3B,QAAOC,OAAQ,aAAc,AAC7B,QAAOC,UAAW,UAAW,AAC7B,QAASC,UAAU,KAAQ,SAAU,CAcrC,MAAMC,sBAAwB,CAAC,CAC7BC,KAAK,CACLC,SAAS,CACTC,IAAI,CACiB,IACrB,OACE,oBAACC,UACC,oBAACL,YAAWM,MAAOF,MAAMF,OAASA,OAAS,GAAIE,KAAMA,MAAMA,MAAQ,KAElED,WACCA,UAAUI,GAAG,CAAC,AAACC,UACb,oBAACC,MACCC,UAAWZ,GACT,0FACA,oGACAU,SAASG,QAAQ,CAAG,YAAc,WAEpCC,IAAKJ,SAASN,KAAK,EAElBM,SAASK,IAAI,EACZ,oBAAChB,MACCiB,KAAMN,SAASK,IAAI,CACnBE,KAAK,UACLC,cAAc,4CAGlB,oBAACC,KACCP,UAAU,yLAEVQ,KAAMV,SAASJ,IAAI,EAElBI,SAASN,KAAK,EAEhBM,SAASW,KAAK,EAAI,oBAACpB,OAAMgB,KAAK,MAAMP,SAASW,KAAK,IAK/D,CAEA,gBAAelB,qBAAsB"}
1
+ {"version":3,"sources":["../../../src/core/Meganav/MeganavPanelItemLinks.tsx"],"sourcesContent":["import React from \"react\";\nimport Icon from \"../Icon\";\nimport cn from \"../utils/cn\";\nimport Badge from \"../Badge\";\nimport { PanelTitle } from \"./utils\";\nimport { IconName } from \"../Icon/types\";\nimport { FlyoutPanelList } from \"./data\";\n\nexport type MeganavPanelItemLink = {\n label?: string;\n listItems: FlyoutPanelList[];\n icon?: IconName;\n link?: {\n label: string;\n link: string;\n };\n};\n\nconst MeganavPanelItemLinks = ({\n label,\n listItems,\n link,\n}: MeganavPanelItemLink) => {\n return (\n <ul>\n <PanelTitle title={link?.label ?? label ?? \"\"} link={link?.link ?? \"\"} />\n\n {listItems &&\n listItems.map((listItem) => (\n <li\n className={cn(\n \"list-none py-2.5 md:py-2 px-3 my-0 flex gap-x-2.5 rounded-lg group hover:cursor-pointer\",\n \"hover:bg-neutral-100 dark:hover:bg-neutral-1200 active:bg-neutral-200 dark:active:bg-neutral-1100\",\n listItem.isMobile ? \"md:hidden\" : \"md:flex\",\n )}\n key={listItem.label}\n >\n {listItem.icon && (\n <Icon\n name={listItem.icon}\n size=\"1.25rem\"\n additionalCSS=\"text-neutral-1000 dark:text-neutral-300\"\n />\n )}\n <a\n className=\"pointer-events-auto font-sans text-label2 md:text-label3 font-semibold text-neutral-1000 dark:text-neutral-300 \n group-hover:text-neutral-1300 dark:group-hover:text-neutral-000 focus-base\"\n href={listItem.link}\n >\n {listItem.label}\n </a>\n {listItem.badge && <Badge size=\"xs\">{listItem.badge}</Badge>}\n </li>\n ))}\n </ul>\n );\n};\n\nexport default MeganavPanelItemLinks;\n"],"names":["React","Icon","cn","Badge","PanelTitle","MeganavPanelItemLinks","label","listItems","link","ul","title","map","listItem","li","className","isMobile","key","icon","name","size","additionalCSS","a","href","badge"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAAOC,SAAU,SAAU,AAC3B,QAAOC,OAAQ,aAAc,AAC7B,QAAOC,UAAW,UAAW,AAC7B,QAASC,UAAU,KAAQ,SAAU,CAcrC,MAAMC,sBAAwB,CAAC,CAC7BC,KAAK,CACLC,SAAS,CACTC,IAAI,CACiB,IACrB,OACE,oBAACC,UACC,oBAACL,YAAWM,MAAOF,MAAMF,OAASA,OAAS,GAAIE,KAAMA,MAAMA,MAAQ,KAElED,WACCA,UAAUI,GAAG,CAAC,AAACC,UACb,oBAACC,MACCC,UAAWZ,GACT,0FACA,oGACAU,SAASG,QAAQ,CAAG,YAAc,WAEpCC,IAAKJ,SAASN,KAAK,EAElBM,SAASK,IAAI,EACZ,oBAAChB,MACCiB,KAAMN,SAASK,IAAI,CACnBE,KAAK,UACLC,cAAc,4CAGlB,oBAACC,KACCP,UAAU,6LAEVQ,KAAMV,SAASJ,IAAI,EAElBI,SAASN,KAAK,EAEhBM,SAASW,KAAK,EAAI,oBAACpB,OAAMgB,KAAK,MAAMP,SAASW,KAAK,IAK/D,CAEA,gBAAelB,qBAAsB"}
@@ -1,2 +1,2 @@
1
- import React from"react";import G2BestMeetsRequirementsSpring2025 from"../images/badges/g2-best-meets-requirements-spring-2025.svg";import G2BestResultsSpring2025 from"../images/badges/g2-best-results-spring-2025.svg";import G2BestSupportSpring2025 from"../images/badges/g2-best-support-spring-2025.svg";import{products}from"../ProductTile/data";import DoxyMeLogo from"../Meganav/images/cust-logo-doxy-light.png";import DoxyMeLogoDark from"../Meganav/images/cust-logo-doxy-dark.png";export const productsMenu=[{label:"Architecture",icon:"icon-gui-squares-2-x-2-outline",link:"/platform"},{label:"Integrations",icon:"icon-gui-puzzle-piece-outline",link:"/docs/platform/integrations"},{label:"SDKs",icon:"icon-gui-cube-transparent-outline",link:"/docs/sdks"},{label:"Security & Compliance",icon:"icon-gui-shield-check-outline",link:"/security-and-compliance"}];export const compareMenu=[{label:"Ably vs Pusher",link:"/ably-vs-pusher"},{label:"Ably vs PubNub",link:"/ably-vs-pubnub"},{label:"Ably vs Socket.io",link:"/ably-vs-socket.io"}];export const solutionsMenu=[{label:"Fan Engagement",icon:"icon-gui-hand-thumb-up-outline",link:"/fan-engagement",description:"Enhance every moment with live, interactive fan experiences."},{label:"FinTech",icon:"icon-gui-currency-dollar-outline",link:"/fin-tech",description:"Speed, reliability, and confidence in every user interaction."},{label:"EdTech",icon:"icon-gui-academic-cap-outline",link:"/ed-tech",description:"Power collaborative, interactive learning environments."},{label:"CXTech",icon:"icon-gui-face-smile-outline",link:"/cx-tech",description:"Deliver fast support, strong relationships, and high retention."},{label:"HealthTech",icon:"icon-gui-heartbeat-outline",link:"/health-tech",description:"Reliable tools with full data privacy and compliance."}];export const customerStoriesHighlight={companyLogo:DoxyMeLogo,companyLogoDark:DoxyMeLogoDark,companyLink:"/case-studies/doxyme",companyName:"Doxy.me",companyDesc:"built their realtime stack in under six months, cutting costs by 65%, eliminating errors, and transforming a once-feared system into a core strength."};export const companyMenu=[{label:"Our Story",icon:"icon-gui-ably-badge",link:"/case-studies"},{label:"Careers",icon:"icon-gui-briefcase-outline",link:"/careers",badge:"WE'RE HIRING"},{label:"About Ably",icon:"icon-gui-ably-badge",link:"/about",isMobile:true}];export const ablyAwards=[{image:G2BestSupportSpring2025,desc:"G2 Best Support Spring 2025"},{image:G2BestMeetsRequirementsSpring2025,desc:"G2 Best Meets Requirements Spring 2025"},{image:G2BestResultsSpring2025,desc:"G2 Best Results Spring 2025"}];export const menuItemLinks=[{name:"Pricing",link:"/pricing",isHiddenMobile:true},{name:"Docs",link:"/docs",isHiddenMobile:true}];export const defaultBlogPosts=[{title:"Ably AI Transport: keep your agents connected and stateful across devices",link:"/blog/ably-ai-transport",categories:["New Release","AI Transport"],pubDate:"Dec 9, 2025"},{title:"Live chat at unlimited scale: What it takes to support stadium-sized audiences",link:"/blog/live-chat-at-unlimited-scale",categories:["Chat"],pubDate:"Nov 18, 2025"}];export const productsForNav={...products,pubsub:{...products.pubsub,link:"/pubsub"},liveSync:{...products.liveSync,link:"/livesync"},chat:{...products.chat,link:"/chat"},spaces:{...products.spaces,link:"/spaces"},aiTransport:{...products.aiTransport,link:"/ai-transport"},liveObjects:{...products.liveObjects,link:"/liveobjects"}};
1
+ import React from"react";import G2BestMeetsRequirementsSpring2025 from"../images/badges/g2-best-meets-requirements-spring-2025.svg";import G2BestResultsSpring2025 from"../images/badges/g2-best-results-spring-2025.svg";import G2BestSupportSpring2025 from"../images/badges/g2-best-support-spring-2025.svg";import{products}from"../ProductTile/data";import DoxyMeLogo from"../Meganav/images/cust-logo-doxy-light.png";import DoxyMeLogoDark from"../Meganav/images/cust-logo-doxy-dark.png";export const productsMenu=[{label:"Architecture",icon:"icon-gui-squares-2-x-2-outline",link:"/platform"},{label:"Integrations",icon:"icon-gui-puzzle-piece-outline",link:"/docs/platform/integrations"},{label:"SDKs",icon:"icon-gui-cube-transparent-outline",link:"/docs/sdks"},{label:"Security & Compliance",icon:"icon-gui-shield-check-outline",link:"/security-and-compliance"}];export const compareMenu=[{label:"Ably vs Pusher",link:"/compare/ably-vs-pusher"},{label:"Ably vs PubNub",link:"/compare/ably-vs-pubnub"},{label:"Ably vs Socket.io",link:"/compare/ably-vs-socketio"}];export const solutionsMenu=[{label:"Fan Engagement",icon:"icon-gui-hand-thumb-up-outline",link:"/fan-engagement",description:"Enhance every moment with live, interactive fan experiences."},{label:"FinTech",icon:"icon-gui-currency-dollar-outline",link:"/fin-tech",description:"Speed, reliability, and confidence in every user interaction."},{label:"EdTech",icon:"icon-gui-academic-cap-outline",link:"/ed-tech",description:"Power collaborative, interactive learning environments."},{label:"CXTech",icon:"icon-gui-face-smile-outline",link:"/cx-tech",description:"Deliver fast support, strong relationships, and high retention."},{label:"HealthTech",icon:"icon-gui-heartbeat-outline",link:"/health-tech",description:"Reliable tools with full data privacy and compliance."}];export const customerStoriesHighlight={companyLogo:DoxyMeLogo,companyLogoDark:DoxyMeLogoDark,companyLink:"/case-studies/doxyme",companyName:"Doxy.me",companyDesc:"built their realtime stack in under six months, cutting costs by 65%, eliminating errors, and transforming a once-feared system into a core strength."};export const companyMenu=[{label:"Our Story",icon:"icon-gui-ably-badge",link:"/case-studies"},{label:"Careers",icon:"icon-gui-briefcase-outline",link:"/careers",badge:"WE'RE HIRING"}];export const ablyAwards=[{image:G2BestSupportSpring2025,desc:"G2 Best Support Spring 2025"},{image:G2BestMeetsRequirementsSpring2025,desc:"G2 Best Meets Requirements Spring 2025"},{image:G2BestResultsSpring2025,desc:"G2 Best Results Spring 2025"}];export const menuItemLinks=[{name:"Pricing",link:"/pricing",isHiddenMobile:true},{name:"Docs",link:"/docs",isHiddenMobile:true}];export const defaultBlogPosts=[{title:"Ably AI Transport: keep your agents connected and stateful across devices",link:"/blog/ably-ai-transport",categories:["New Release","AI Transport"],pubDate:"Dec 9, 2025"},{title:"Live chat at unlimited scale: What it takes to support stadium-sized audiences",link:"/blog/live-chat-at-unlimited-scale",categories:["Chat"],pubDate:"Nov 18, 2025"}];export const productsForNav={...products,pubsub:{...products.pubsub,link:"/pubsub"},liveSync:{...products.liveSync,link:"/livesync"},chat:{...products.chat,link:"/chat"},spaces:{...products.spaces,link:"/spaces"},aiTransport:{...products.aiTransport,link:"/ai-transport"},liveObjects:{...products.liveObjects,link:"/liveobjects"}};
2
2
  //# sourceMappingURL=data.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/core/Meganav/data.tsx"],"sourcesContent":["import React from \"react\";\nimport { IconName } from \"../Icon/types\";\nimport { CustomerStoryHighlight } from \"./MeganavCustomerStories\";\nimport { BlogPost } from \"./MeganavBlog\";\nimport G2BestMeetsRequirementsSpring2025 from \"../images/badges/g2-best-meets-requirements-spring-2025.svg\";\nimport G2BestResultsSpring2025 from \"../images/badges/g2-best-results-spring-2025.svg\";\nimport G2BestSupportSpring2025 from \"../images/badges/g2-best-support-spring-2025.svg\";\nimport { products } from \"../ProductTile/data\";\nimport DoxyMeLogo from \"../Meganav/images/cust-logo-doxy-light.png\";\nimport DoxyMeLogoDark from \"../Meganav/images/cust-logo-doxy-dark.png\";\n\nexport type FlyoutPanelList = {\n label: string;\n icon?: IconName;\n link: string;\n isMobile?: boolean;\n description?: string;\n badge?: string;\n};\n\nexport type MenuItem = {\n name: string;\n link?: string;\n isHiddenMobile?: boolean;\n content?: React.ReactNode;\n panelClassName?: string;\n};\n\nexport const productsMenu: FlyoutPanelList[] = [\n {\n label: \"Architecture\",\n icon: \"icon-gui-squares-2-x-2-outline\",\n link: \"/platform\",\n },\n {\n label: \"Integrations\",\n icon: \"icon-gui-puzzle-piece-outline\",\n link: \"/docs/platform/integrations\",\n },\n {\n label: \"SDKs\",\n icon: \"icon-gui-cube-transparent-outline\",\n link: \"/docs/sdks\",\n },\n {\n label: \"Security & Compliance\",\n icon: \"icon-gui-shield-check-outline\",\n link: \"/security-and-compliance\",\n },\n];\n\nexport const compareMenu: FlyoutPanelList[] = [\n {\n label: \"Ably vs Pusher\",\n link: \"/ably-vs-pusher\",\n },\n {\n label: \"Ably vs PubNub\",\n link: \"/ably-vs-pubnub\",\n },\n {\n label: \"Ably vs Socket.io\",\n link: \"/ably-vs-socket.io\",\n },\n];\n\nexport const solutionsMenu: FlyoutPanelList[] = [\n {\n label: \"Fan Engagement\",\n icon: \"icon-gui-hand-thumb-up-outline\",\n link: \"/fan-engagement\",\n description: \"Enhance every moment with live, interactive fan experiences.\",\n },\n {\n label: \"FinTech\",\n icon: \"icon-gui-currency-dollar-outline\",\n link: \"/fin-tech\",\n description:\n \"Speed, reliability, and confidence in every user interaction.\",\n },\n {\n label: \"EdTech\",\n icon: \"icon-gui-academic-cap-outline\",\n link: \"/ed-tech\",\n description: \"Power collaborative, interactive learning environments.\",\n },\n {\n label: \"CXTech\",\n icon: \"icon-gui-face-smile-outline\",\n link: \"/cx-tech\",\n description:\n \"Deliver fast support, strong relationships, and high retention.\",\n },\n\n {\n label: \"HealthTech\",\n icon: \"icon-gui-heartbeat-outline\",\n link: \"/health-tech\",\n description: \"Reliable tools with full data privacy and compliance.\",\n },\n];\n\nexport const customerStoriesHighlight: CustomerStoryHighlight = {\n companyLogo: DoxyMeLogo,\n companyLogoDark: DoxyMeLogoDark,\n companyLink: \"/case-studies/doxyme\",\n companyName: \"Doxy.me\",\n companyDesc:\n \"built their realtime stack in under six months, cutting costs by 65%, eliminating errors, and transforming a once-feared system into a core strength.\",\n};\n\nexport const companyMenu: FlyoutPanelList[] = [\n {\n label: \"Our Story\",\n icon: \"icon-gui-ably-badge\",\n link: \"/case-studies\",\n },\n {\n label: \"Careers\",\n icon: \"icon-gui-briefcase-outline\",\n link: \"/careers\",\n badge: \"WE'RE HIRING\",\n },\n {\n label: \"About Ably\",\n icon: \"icon-gui-ably-badge\",\n link: \"/about\",\n isMobile: true,\n },\n];\n\nexport const ablyAwards = [\n {\n image: G2BestSupportSpring2025,\n desc: \"G2 Best Support Spring 2025\",\n },\n {\n image: G2BestMeetsRequirementsSpring2025,\n desc: \"G2 Best Meets Requirements Spring 2025\",\n },\n {\n image: G2BestResultsSpring2025,\n desc: \"G2 Best Results Spring 2025\",\n },\n];\n\nexport const menuItemLinks = [\n { name: \"Pricing\", link: \"/pricing\", isHiddenMobile: true },\n { name: \"Docs\", link: \"/docs\", isHiddenMobile: true },\n];\n\nexport const defaultBlogPosts: BlogPost[] = [\n {\n title:\n \"Ably AI Transport: keep your agents connected and stateful across devices\",\n link: \"/blog/ably-ai-transport\",\n categories: [\"New Release\", \"AI Transport\"],\n pubDate: \"Dec 9, 2025\",\n },\n {\n title:\n \"Live chat at unlimited scale: What it takes to support stadium-sized audiences\",\n link: \"/blog/live-chat-at-unlimited-scale\",\n categories: [\"Chat\"],\n pubDate: \"Nov 18, 2025\",\n },\n];\n\nexport const productsForNav = {\n ...products,\n pubsub: { ...products.pubsub, link: \"/pubsub\" },\n liveSync: { ...products.liveSync, link: \"/livesync\" },\n chat: { ...products.chat, link: \"/chat\" },\n spaces: { ...products.spaces, link: \"/spaces\" },\n aiTransport: {\n ...products.aiTransport,\n link: \"/ai-transport\",\n },\n liveObjects: { ...products.liveObjects, link: \"/liveobjects\" },\n};\n"],"names":["React","G2BestMeetsRequirementsSpring2025","G2BestResultsSpring2025","G2BestSupportSpring2025","products","DoxyMeLogo","DoxyMeLogoDark","productsMenu","label","icon","link","compareMenu","solutionsMenu","description","customerStoriesHighlight","companyLogo","companyLogoDark","companyLink","companyName","companyDesc","companyMenu","badge","isMobile","ablyAwards","image","desc","menuItemLinks","name","isHiddenMobile","defaultBlogPosts","title","categories","pubDate","productsForNav","pubsub","liveSync","chat","spaces","aiTransport","liveObjects"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAI1B,QAAOC,sCAAuC,6DAA8D,AAC5G,QAAOC,4BAA6B,kDAAmD,AACvF,QAAOC,4BAA6B,kDAAmD,AACvF,QAASC,QAAQ,KAAQ,qBAAsB,AAC/C,QAAOC,eAAgB,4CAA6C,AACpE,QAAOC,mBAAoB,2CAA4C,AAmBvE,QAAO,MAAMC,aAAkC,CAC7C,CACEC,MAAO,eACPC,KAAM,iCACNC,KAAM,WACR,EACA,CACEF,MAAO,eACPC,KAAM,gCACNC,KAAM,6BACR,EACA,CACEF,MAAO,OACPC,KAAM,oCACNC,KAAM,YACR,EACA,CACEF,MAAO,wBACPC,KAAM,gCACNC,KAAM,0BACR,EACD,AAAC,AAEF,QAAO,MAAMC,YAAiC,CAC5C,CACEH,MAAO,iBACPE,KAAM,iBACR,EACA,CACEF,MAAO,iBACPE,KAAM,iBACR,EACA,CACEF,MAAO,oBACPE,KAAM,oBACR,EACD,AAAC,AAEF,QAAO,MAAME,cAAmC,CAC9C,CACEJ,MAAO,iBACPC,KAAM,iCACNC,KAAM,kBACNG,YAAa,8DACf,EACA,CACEL,MAAO,UACPC,KAAM,mCACNC,KAAM,YACNG,YACE,+DACJ,EACA,CACEL,MAAO,SACPC,KAAM,gCACNC,KAAM,WACNG,YAAa,yDACf,EACA,CACEL,MAAO,SACPC,KAAM,8BACNC,KAAM,WACNG,YACE,iEACJ,EAEA,CACEL,MAAO,aACPC,KAAM,6BACNC,KAAM,eACNG,YAAa,uDACf,EACD,AAAC,AAEF,QAAO,MAAMC,yBAAmD,CAC9DC,YAAaV,WACbW,gBAAiBV,eACjBW,YAAa,uBACbC,YAAa,UACbC,YACE,uJACJ,CAAE,AAEF,QAAO,MAAMC,YAAiC,CAC5C,CACEZ,MAAO,YACPC,KAAM,sBACNC,KAAM,eACR,EACA,CACEF,MAAO,UACPC,KAAM,6BACNC,KAAM,WACNW,MAAO,cACT,EACA,CACEb,MAAO,aACPC,KAAM,sBACNC,KAAM,SACNY,SAAU,IACZ,EACD,AAAC,AAEF,QAAO,MAAMC,WAAa,CACxB,CACEC,MAAOrB,wBACPsB,KAAM,6BACR,EACA,CACED,MAAOvB,kCACPwB,KAAM,wCACR,EACA,CACED,MAAOtB,wBACPuB,KAAM,6BACR,EACD,AAAC,AAEF,QAAO,MAAMC,cAAgB,CAC3B,CAAEC,KAAM,UAAWjB,KAAM,WAAYkB,eAAgB,IAAK,EAC1D,CAAED,KAAM,OAAQjB,KAAM,QAASkB,eAAgB,IAAK,EACrD,AAAC,AAEF,QAAO,MAAMC,iBAA+B,CAC1C,CACEC,MACE,4EACFpB,KAAM,0BACNqB,WAAY,CAAC,cAAe,eAAe,CAC3CC,QAAS,aACX,EACA,CACEF,MACE,iFACFpB,KAAM,qCACNqB,WAAY,CAAC,OAAO,CACpBC,QAAS,cACX,EACD,AAAC,AAEF,QAAO,MAAMC,eAAiB,CAC5B,GAAG7B,QAAQ,CACX8B,OAAQ,CAAE,GAAG9B,SAAS8B,MAAM,CAAExB,KAAM,SAAU,EAC9CyB,SAAU,CAAE,GAAG/B,SAAS+B,QAAQ,CAAEzB,KAAM,WAAY,EACpD0B,KAAM,CAAE,GAAGhC,SAASgC,IAAI,CAAE1B,KAAM,OAAQ,EACxC2B,OAAQ,CAAE,GAAGjC,SAASiC,MAAM,CAAE3B,KAAM,SAAU,EAC9C4B,YAAa,CACX,GAAGlC,SAASkC,WAAW,CACvB5B,KAAM,eACR,EACA6B,YAAa,CAAE,GAAGnC,SAASmC,WAAW,CAAE7B,KAAM,cAAe,CAC/D,CAAE"}
1
+ {"version":3,"sources":["../../../src/core/Meganav/data.tsx"],"sourcesContent":["import React from \"react\";\nimport { IconName } from \"../Icon/types\";\nimport { CustomerStoryHighlight } from \"./MeganavCustomerStories\";\nimport { BlogPost } from \"./MeganavBlog\";\nimport G2BestMeetsRequirementsSpring2025 from \"../images/badges/g2-best-meets-requirements-spring-2025.svg\";\nimport G2BestResultsSpring2025 from \"../images/badges/g2-best-results-spring-2025.svg\";\nimport G2BestSupportSpring2025 from \"../images/badges/g2-best-support-spring-2025.svg\";\nimport { products } from \"../ProductTile/data\";\nimport DoxyMeLogo from \"../Meganav/images/cust-logo-doxy-light.png\";\nimport DoxyMeLogoDark from \"../Meganav/images/cust-logo-doxy-dark.png\";\n\nexport type FlyoutPanelList = {\n label: string;\n icon?: IconName;\n link: string;\n isMobile?: boolean;\n description?: string;\n badge?: string;\n};\n\nexport type MenuItem = {\n name: string;\n link?: string;\n isHiddenMobile?: boolean;\n content?: React.ReactNode;\n panelClassName?: string;\n};\n\nexport const productsMenu: FlyoutPanelList[] = [\n {\n label: \"Architecture\",\n icon: \"icon-gui-squares-2-x-2-outline\",\n link: \"/platform\",\n },\n {\n label: \"Integrations\",\n icon: \"icon-gui-puzzle-piece-outline\",\n link: \"/docs/platform/integrations\",\n },\n {\n label: \"SDKs\",\n icon: \"icon-gui-cube-transparent-outline\",\n link: \"/docs/sdks\",\n },\n {\n label: \"Security & Compliance\",\n icon: \"icon-gui-shield-check-outline\",\n link: \"/security-and-compliance\",\n },\n];\n\nexport const compareMenu: FlyoutPanelList[] = [\n {\n label: \"Ably vs Pusher\",\n link: \"/compare/ably-vs-pusher\",\n },\n {\n label: \"Ably vs PubNub\",\n link: \"/compare/ably-vs-pubnub\",\n },\n {\n label: \"Ably vs Socket.io\",\n link: \"/compare/ably-vs-socketio\",\n },\n];\n\nexport const solutionsMenu: FlyoutPanelList[] = [\n {\n label: \"Fan Engagement\",\n icon: \"icon-gui-hand-thumb-up-outline\",\n link: \"/fan-engagement\",\n description: \"Enhance every moment with live, interactive fan experiences.\",\n },\n {\n label: \"FinTech\",\n icon: \"icon-gui-currency-dollar-outline\",\n link: \"/fin-tech\",\n description:\n \"Speed, reliability, and confidence in every user interaction.\",\n },\n {\n label: \"EdTech\",\n icon: \"icon-gui-academic-cap-outline\",\n link: \"/ed-tech\",\n description: \"Power collaborative, interactive learning environments.\",\n },\n {\n label: \"CXTech\",\n icon: \"icon-gui-face-smile-outline\",\n link: \"/cx-tech\",\n description:\n \"Deliver fast support, strong relationships, and high retention.\",\n },\n\n {\n label: \"HealthTech\",\n icon: \"icon-gui-heartbeat-outline\",\n link: \"/health-tech\",\n description: \"Reliable tools with full data privacy and compliance.\",\n },\n];\n\nexport const customerStoriesHighlight: CustomerStoryHighlight = {\n companyLogo: DoxyMeLogo,\n companyLogoDark: DoxyMeLogoDark,\n companyLink: \"/case-studies/doxyme\",\n companyName: \"Doxy.me\",\n companyDesc:\n \"built their realtime stack in under six months, cutting costs by 65%, eliminating errors, and transforming a once-feared system into a core strength.\",\n};\n\nexport const companyMenu: FlyoutPanelList[] = [\n {\n label: \"Our Story\",\n icon: \"icon-gui-ably-badge\",\n link: \"/case-studies\",\n },\n {\n label: \"Careers\",\n icon: \"icon-gui-briefcase-outline\",\n link: \"/careers\",\n badge: \"WE'RE HIRING\",\n },\n];\n\nexport const ablyAwards = [\n {\n image: G2BestSupportSpring2025,\n desc: \"G2 Best Support Spring 2025\",\n },\n {\n image: G2BestMeetsRequirementsSpring2025,\n desc: \"G2 Best Meets Requirements Spring 2025\",\n },\n {\n image: G2BestResultsSpring2025,\n desc: \"G2 Best Results Spring 2025\",\n },\n];\n\nexport const menuItemLinks = [\n { name: \"Pricing\", link: \"/pricing\", isHiddenMobile: true },\n { name: \"Docs\", link: \"/docs\", isHiddenMobile: true },\n];\n\nexport const defaultBlogPosts: BlogPost[] = [\n {\n title:\n \"Ably AI Transport: keep your agents connected and stateful across devices\",\n link: \"/blog/ably-ai-transport\",\n categories: [\"New Release\", \"AI Transport\"],\n pubDate: \"Dec 9, 2025\",\n },\n {\n title:\n \"Live chat at unlimited scale: What it takes to support stadium-sized audiences\",\n link: \"/blog/live-chat-at-unlimited-scale\",\n categories: [\"Chat\"],\n pubDate: \"Nov 18, 2025\",\n },\n];\n\nexport const productsForNav = {\n ...products,\n pubsub: { ...products.pubsub, link: \"/pubsub\" },\n liveSync: { ...products.liveSync, link: \"/livesync\" },\n chat: { ...products.chat, link: \"/chat\" },\n spaces: { ...products.spaces, link: \"/spaces\" },\n aiTransport: {\n ...products.aiTransport,\n link: \"/ai-transport\",\n },\n liveObjects: { ...products.liveObjects, link: \"/liveobjects\" },\n};\n"],"names":["React","G2BestMeetsRequirementsSpring2025","G2BestResultsSpring2025","G2BestSupportSpring2025","products","DoxyMeLogo","DoxyMeLogoDark","productsMenu","label","icon","link","compareMenu","solutionsMenu","description","customerStoriesHighlight","companyLogo","companyLogoDark","companyLink","companyName","companyDesc","companyMenu","badge","ablyAwards","image","desc","menuItemLinks","name","isHiddenMobile","defaultBlogPosts","title","categories","pubDate","productsForNav","pubsub","liveSync","chat","spaces","aiTransport","liveObjects"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAI1B,QAAOC,sCAAuC,6DAA8D,AAC5G,QAAOC,4BAA6B,kDAAmD,AACvF,QAAOC,4BAA6B,kDAAmD,AACvF,QAASC,QAAQ,KAAQ,qBAAsB,AAC/C,QAAOC,eAAgB,4CAA6C,AACpE,QAAOC,mBAAoB,2CAA4C,AAmBvE,QAAO,MAAMC,aAAkC,CAC7C,CACEC,MAAO,eACPC,KAAM,iCACNC,KAAM,WACR,EACA,CACEF,MAAO,eACPC,KAAM,gCACNC,KAAM,6BACR,EACA,CACEF,MAAO,OACPC,KAAM,oCACNC,KAAM,YACR,EACA,CACEF,MAAO,wBACPC,KAAM,gCACNC,KAAM,0BACR,EACD,AAAC,AAEF,QAAO,MAAMC,YAAiC,CAC5C,CACEH,MAAO,iBACPE,KAAM,yBACR,EACA,CACEF,MAAO,iBACPE,KAAM,yBACR,EACA,CACEF,MAAO,oBACPE,KAAM,2BACR,EACD,AAAC,AAEF,QAAO,MAAME,cAAmC,CAC9C,CACEJ,MAAO,iBACPC,KAAM,iCACNC,KAAM,kBACNG,YAAa,8DACf,EACA,CACEL,MAAO,UACPC,KAAM,mCACNC,KAAM,YACNG,YACE,+DACJ,EACA,CACEL,MAAO,SACPC,KAAM,gCACNC,KAAM,WACNG,YAAa,yDACf,EACA,CACEL,MAAO,SACPC,KAAM,8BACNC,KAAM,WACNG,YACE,iEACJ,EAEA,CACEL,MAAO,aACPC,KAAM,6BACNC,KAAM,eACNG,YAAa,uDACf,EACD,AAAC,AAEF,QAAO,MAAMC,yBAAmD,CAC9DC,YAAaV,WACbW,gBAAiBV,eACjBW,YAAa,uBACbC,YAAa,UACbC,YACE,uJACJ,CAAE,AAEF,QAAO,MAAMC,YAAiC,CAC5C,CACEZ,MAAO,YACPC,KAAM,sBACNC,KAAM,eACR,EACA,CACEF,MAAO,UACPC,KAAM,6BACNC,KAAM,WACNW,MAAO,cACT,EACD,AAAC,AAEF,QAAO,MAAMC,WAAa,CACxB,CACEC,MAAOpB,wBACPqB,KAAM,6BACR,EACA,CACED,MAAOtB,kCACPuB,KAAM,wCACR,EACA,CACED,MAAOrB,wBACPsB,KAAM,6BACR,EACD,AAAC,AAEF,QAAO,MAAMC,cAAgB,CAC3B,CAAEC,KAAM,UAAWhB,KAAM,WAAYiB,eAAgB,IAAK,EAC1D,CAAED,KAAM,OAAQhB,KAAM,QAASiB,eAAgB,IAAK,EACrD,AAAC,AAEF,QAAO,MAAMC,iBAA+B,CAC1C,CACEC,MACE,4EACFnB,KAAM,0BACNoB,WAAY,CAAC,cAAe,eAAe,CAC3CC,QAAS,aACX,EACA,CACEF,MACE,iFACFnB,KAAM,qCACNoB,WAAY,CAAC,OAAO,CACpBC,QAAS,cACX,EACD,AAAC,AAEF,QAAO,MAAMC,eAAiB,CAC5B,GAAG5B,QAAQ,CACX6B,OAAQ,CAAE,GAAG7B,SAAS6B,MAAM,CAAEvB,KAAM,SAAU,EAC9CwB,SAAU,CAAE,GAAG9B,SAAS8B,QAAQ,CAAExB,KAAM,WAAY,EACpDyB,KAAM,CAAE,GAAG/B,SAAS+B,IAAI,CAAEzB,KAAM,OAAQ,EACxC0B,OAAQ,CAAE,GAAGhC,SAASgC,MAAM,CAAE1B,KAAM,SAAU,EAC9C2B,YAAa,CACX,GAAGjC,SAASiC,WAAW,CACvB3B,KAAM,eACR,EACA4B,YAAa,CAAE,GAAGlC,SAASkC,WAAW,CAAE5B,KAAM,cAAe,CAC/D,CAAE"}
@@ -1,2 +1,2 @@
1
- import React from"react";import Status,{StatusUrl}from"../../Status";import MeganavBlog from"../MeganavBlog";import MeganavCustomerStories from"../MeganavCustomerStories";import{MeganavPanel,MeganavPanelFullwidth}from"../MeganavPanel";import{ablyAwards,companyMenu,compareMenu,customerStoriesHighlight,productsMenu,solutionsMenu,menuItemLinks,defaultBlogPosts}from"../data";export const getMenuItemsForHeader=blogPosts=>{const panelClassName="w-full sm:w-[50.9375rem]";const recentBlogPosts=blogPosts?.length>0?blogPosts.slice(0,2):defaultBlogPosts;return[{name:"Products",content:React.createElement(MeganavPanel,{displayProductTile:true,panelRightItems:[{label:"Platform",listItems:productsMenu},{link:{label:"Compare our tech",link:"/compare"},listItems:compareMenu}],panelRightBottom:React.createElement(Status,{statusUrl:StatusUrl,additionalCSS:"px-3 py-2 hover:bg-neutral-100 dark:hover:bg-neutral-1200 active:bg-neutral-200 dark:active:bg-neutral-1100 rounded-lg",showDescription:true})}),panelClassName},{name:"Solutions",content:React.createElement(MeganavPanelFullwidth,{panelItems:solutionsMenu}),panelClassName},{name:"Company",content:React.createElement(MeganavPanel,{panelLeft:React.createElement(MeganavCustomerStories,{title:"Customer stories",link:"/case-studies",customerStoriesHighlight:customerStoriesHighlight}),panelMiddleItems:React.createElement(MeganavBlog,{title:"Blog",link:"/blog",posts:recentBlogPosts}),panelRightItems:[{label:"Company",listItems:companyMenu}],panelRightBottom:React.createElement("div",{className:"flex-1 gap-x-2 hidden md:flex p-3"},ablyAwards.slice(0,3).map(award=>React.createElement("img",{key:award.desc,src:award.image,alt:award.desc,width:"57",height:"64",loading:"lazy"})))}),panelClassName},...menuItemLinks]};
1
+ import React from"react";import Status,{StatusUrl}from"../../Status";import MeganavBlog from"../MeganavBlog";import MeganavCustomerStories from"../MeganavCustomerStories";import{MeganavPanel,MeganavPanelFullwidth}from"../MeganavPanel";import{ablyAwards,companyMenu,compareMenu,customerStoriesHighlight,productsMenu,solutionsMenu,menuItemLinks,defaultBlogPosts}from"../data";export const getMenuItemsForHeader=blogPosts=>{const panelClassName="w-full sm:w-[50.9375rem]";const recentBlogPosts=blogPosts?.length>0?blogPosts.slice(0,2):defaultBlogPosts;return[{name:"Products",content:React.createElement(MeganavPanel,{displayProductTile:true,panelRightItems:[{label:"Platform",listItems:productsMenu},{link:{label:"Compare our tech",link:"/compare"},listItems:compareMenu}],panelRightBottom:React.createElement(Status,{statusUrl:StatusUrl,additionalCSS:"px-3 py-2 hover:bg-neutral-100 dark:hover:bg-neutral-1200 active:bg-neutral-200 dark:active:bg-neutral-1100 rounded-lg",showDescription:true})}),panelClassName},{name:"Solutions",content:React.createElement(MeganavPanelFullwidth,{panelItems:solutionsMenu}),panelClassName},{name:"Company",content:React.createElement(MeganavPanel,{panelLeft:React.createElement(MeganavCustomerStories,{title:"Customer stories",link:"/case-studies",customerStoriesHighlight:customerStoriesHighlight}),panelMiddleItems:React.createElement(MeganavBlog,{title:"Blog",link:"/blog",posts:recentBlogPosts}),panelRightItems:[{label:"Ably",listItems:companyMenu}],panelRightBottom:React.createElement("div",{className:"flex-1 gap-x-2 hidden md:flex p-3"},ablyAwards.slice(0,3).map(award=>React.createElement("img",{key:award.desc,src:award.image,alt:award.desc,width:"57",height:"64",loading:"lazy"}))),panelRightBottomClassName:"hidden md:flex"}),panelClassName},...menuItemLinks]};
2
2
  //# sourceMappingURL=getMenuItemsForHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/core/Meganav/utils/getMenuItemsForHeader.tsx"],"sourcesContent":["import React from \"react\";\nimport Status, { StatusUrl } from \"../../Status\";\nimport MeganavBlog, { BlogPost } from \"../MeganavBlog\";\nimport MeganavCustomerStories from \"../MeganavCustomerStories\";\nimport { MeganavPanel, MeganavPanelFullwidth } from \"../MeganavPanel\";\nimport {\n ablyAwards,\n companyMenu,\n compareMenu,\n customerStoriesHighlight,\n MenuItem,\n productsMenu,\n solutionsMenu,\n menuItemLinks,\n defaultBlogPosts,\n} from \"../data\";\n\nexport const getMenuItemsForHeader = (blogPosts: BlogPost[]): MenuItem[] => {\n const panelClassName = \"w-full sm:w-[50.9375rem]\";\n const recentBlogPosts =\n blogPosts?.length > 0 ? blogPosts.slice(0, 2) : defaultBlogPosts;\n\n return [\n {\n name: \"Products\",\n content: (\n <MeganavPanel\n displayProductTile={true}\n panelRightItems={[\n { label: \"Platform\", listItems: productsMenu },\n {\n link: { label: \"Compare our tech\", link: \"/compare\" },\n listItems: compareMenu,\n },\n ]}\n panelRightBottom={\n <Status\n statusUrl={StatusUrl}\n additionalCSS=\"px-3 py-2 hover:bg-neutral-100 dark:hover:bg-neutral-1200 active:bg-neutral-200 dark:active:bg-neutral-1100 rounded-lg\"\n showDescription\n />\n }\n />\n ),\n panelClassName,\n },\n {\n name: \"Solutions\",\n content: <MeganavPanelFullwidth panelItems={solutionsMenu} />,\n panelClassName,\n },\n {\n name: \"Company\",\n content: (\n <MeganavPanel\n panelLeft={\n <MeganavCustomerStories\n title=\"Customer stories\"\n link=\"/case-studies\"\n customerStoriesHighlight={customerStoriesHighlight}\n />\n }\n panelMiddleItems={\n <MeganavBlog title=\"Blog\" link=\"/blog\" posts={recentBlogPosts} />\n }\n panelRightItems={[{ label: \"Company\", listItems: companyMenu }]}\n panelRightBottom={\n <div className=\"flex-1 gap-x-2 hidden md:flex p-3\">\n {ablyAwards.slice(0, 3).map((award) => (\n <img\n key={award.desc}\n src={award.image}\n alt={award.desc}\n width=\"57\"\n height=\"64\"\n loading=\"lazy\"\n />\n ))}\n </div>\n }\n />\n ),\n panelClassName,\n },\n ...menuItemLinks,\n ];\n};\n"],"names":["React","Status","StatusUrl","MeganavBlog","MeganavCustomerStories","MeganavPanel","MeganavPanelFullwidth","ablyAwards","companyMenu","compareMenu","customerStoriesHighlight","productsMenu","solutionsMenu","menuItemLinks","defaultBlogPosts","getMenuItemsForHeader","blogPosts","panelClassName","recentBlogPosts","length","slice","name","content","displayProductTile","panelRightItems","label","listItems","link","panelRightBottom","statusUrl","additionalCSS","showDescription","panelItems","panelLeft","title","panelMiddleItems","posts","div","className","map","award","img","key","desc","src","image","alt","width","height","loading"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAAOC,QAAUC,SAAS,KAAQ,cAAe,AACjD,QAAOC,gBAA+B,gBAAiB,AACvD,QAAOC,2BAA4B,2BAA4B,AAC/D,QAASC,YAAY,CAAEC,qBAAqB,KAAQ,iBAAkB,AACtE,QACEC,UAAU,CACVC,WAAW,CACXC,WAAW,CACXC,wBAAwB,CAExBC,YAAY,CACZC,aAAa,CACbC,aAAa,CACbC,gBAAgB,KACX,SAAU,AAEjB,QAAO,MAAMC,sBAAwB,AAACC,YACpC,MAAMC,eAAiB,2BACvB,MAAMC,gBACJF,WAAWG,OAAS,EAAIH,UAAUI,KAAK,CAAC,EAAG,GAAKN,iBAElD,MAAO,CACL,CACEO,KAAM,WACNC,QACE,oBAACjB,cACCkB,mBAAoB,KACpBC,gBAAiB,CACf,CAAEC,MAAO,WAAYC,UAAWf,YAAa,EAC7C,CACEgB,KAAM,CAAEF,MAAO,mBAAoBE,KAAM,UAAW,EACpDD,UAAWjB,WACb,EACD,CACDmB,iBACE,oBAAC3B,QACC4B,UAAW3B,UACX4B,cAAc,yHACdC,gBAAAA,SAKRd,cACF,EACA,CACEI,KAAM,YACNC,QAAS,oBAAChB,uBAAsB0B,WAAYpB,gBAC5CK,cACF,EACA,CACEI,KAAM,UACNC,QACE,oBAACjB,cACC4B,UACE,oBAAC7B,wBACC8B,MAAM,mBACNP,KAAK,gBACLjB,yBAA0BA,2BAG9ByB,iBACE,oBAAChC,aAAY+B,MAAM,OAAOP,KAAK,QAAQS,MAAOlB,kBAEhDM,gBAAiB,CAAC,CAAEC,MAAO,UAAWC,UAAWlB,WAAY,EAAE,CAC/DoB,iBACE,oBAACS,OAAIC,UAAU,qCACZ/B,WAAWa,KAAK,CAAC,EAAG,GAAGmB,GAAG,CAAC,AAACC,OAC3B,oBAACC,OACCC,IAAKF,MAAMG,IAAI,CACfC,IAAKJ,MAAMK,KAAK,CAChBC,IAAKN,MAAMG,IAAI,CACfI,MAAM,KACNC,OAAO,KACPC,QAAQ,aAOpBhC,cACF,KACGJ,cACJ,AACH,CAAE"}
1
+ {"version":3,"sources":["../../../../src/core/Meganav/utils/getMenuItemsForHeader.tsx"],"sourcesContent":["import React from \"react\";\nimport Status, { StatusUrl } from \"../../Status\";\nimport MeganavBlog, { BlogPost } from \"../MeganavBlog\";\nimport MeganavCustomerStories from \"../MeganavCustomerStories\";\nimport { MeganavPanel, MeganavPanelFullwidth } from \"../MeganavPanel\";\nimport {\n ablyAwards,\n companyMenu,\n compareMenu,\n customerStoriesHighlight,\n MenuItem,\n productsMenu,\n solutionsMenu,\n menuItemLinks,\n defaultBlogPosts,\n} from \"../data\";\n\nexport const getMenuItemsForHeader = (blogPosts: BlogPost[]): MenuItem[] => {\n const panelClassName = \"w-full sm:w-[50.9375rem]\";\n const recentBlogPosts =\n blogPosts?.length > 0 ? blogPosts.slice(0, 2) : defaultBlogPosts;\n\n return [\n {\n name: \"Products\",\n content: (\n <MeganavPanel\n displayProductTile={true}\n panelRightItems={[\n { label: \"Platform\", listItems: productsMenu },\n {\n link: { label: \"Compare our tech\", link: \"/compare\" },\n listItems: compareMenu,\n },\n ]}\n panelRightBottom={\n <Status\n statusUrl={StatusUrl}\n additionalCSS=\"px-3 py-2 hover:bg-neutral-100 dark:hover:bg-neutral-1200 active:bg-neutral-200 dark:active:bg-neutral-1100 rounded-lg\"\n showDescription\n />\n }\n />\n ),\n panelClassName,\n },\n {\n name: \"Solutions\",\n content: <MeganavPanelFullwidth panelItems={solutionsMenu} />,\n panelClassName,\n },\n {\n name: \"Company\",\n content: (\n <MeganavPanel\n panelLeft={\n <MeganavCustomerStories\n title=\"Customer stories\"\n link=\"/case-studies\"\n customerStoriesHighlight={customerStoriesHighlight}\n />\n }\n panelMiddleItems={\n <MeganavBlog title=\"Blog\" link=\"/blog\" posts={recentBlogPosts} />\n }\n panelRightItems={[{ label: \"Ably\", listItems: companyMenu }]}\n panelRightBottom={\n <div className=\"flex-1 gap-x-2 hidden md:flex p-3\">\n {ablyAwards.slice(0, 3).map((award) => (\n <img\n key={award.desc}\n src={award.image}\n alt={award.desc}\n width=\"57\"\n height=\"64\"\n loading=\"lazy\"\n />\n ))}\n </div>\n }\n panelRightBottomClassName=\"hidden md:flex\"\n />\n ),\n panelClassName,\n },\n ...menuItemLinks,\n ];\n};\n"],"names":["React","Status","StatusUrl","MeganavBlog","MeganavCustomerStories","MeganavPanel","MeganavPanelFullwidth","ablyAwards","companyMenu","compareMenu","customerStoriesHighlight","productsMenu","solutionsMenu","menuItemLinks","defaultBlogPosts","getMenuItemsForHeader","blogPosts","panelClassName","recentBlogPosts","length","slice","name","content","displayProductTile","panelRightItems","label","listItems","link","panelRightBottom","statusUrl","additionalCSS","showDescription","panelItems","panelLeft","title","panelMiddleItems","posts","div","className","map","award","img","key","desc","src","image","alt","width","height","loading","panelRightBottomClassName"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAAOC,QAAUC,SAAS,KAAQ,cAAe,AACjD,QAAOC,gBAA+B,gBAAiB,AACvD,QAAOC,2BAA4B,2BAA4B,AAC/D,QAASC,YAAY,CAAEC,qBAAqB,KAAQ,iBAAkB,AACtE,QACEC,UAAU,CACVC,WAAW,CACXC,WAAW,CACXC,wBAAwB,CAExBC,YAAY,CACZC,aAAa,CACbC,aAAa,CACbC,gBAAgB,KACX,SAAU,AAEjB,QAAO,MAAMC,sBAAwB,AAACC,YACpC,MAAMC,eAAiB,2BACvB,MAAMC,gBACJF,WAAWG,OAAS,EAAIH,UAAUI,KAAK,CAAC,EAAG,GAAKN,iBAElD,MAAO,CACL,CACEO,KAAM,WACNC,QACE,oBAACjB,cACCkB,mBAAoB,KACpBC,gBAAiB,CACf,CAAEC,MAAO,WAAYC,UAAWf,YAAa,EAC7C,CACEgB,KAAM,CAAEF,MAAO,mBAAoBE,KAAM,UAAW,EACpDD,UAAWjB,WACb,EACD,CACDmB,iBACE,oBAAC3B,QACC4B,UAAW3B,UACX4B,cAAc,yHACdC,gBAAAA,SAKRd,cACF,EACA,CACEI,KAAM,YACNC,QAAS,oBAAChB,uBAAsB0B,WAAYpB,gBAC5CK,cACF,EACA,CACEI,KAAM,UACNC,QACE,oBAACjB,cACC4B,UACE,oBAAC7B,wBACC8B,MAAM,mBACNP,KAAK,gBACLjB,yBAA0BA,2BAG9ByB,iBACE,oBAAChC,aAAY+B,MAAM,OAAOP,KAAK,QAAQS,MAAOlB,kBAEhDM,gBAAiB,CAAC,CAAEC,MAAO,OAAQC,UAAWlB,WAAY,EAAE,CAC5DoB,iBACE,oBAACS,OAAIC,UAAU,qCACZ/B,WAAWa,KAAK,CAAC,EAAG,GAAGmB,GAAG,CAAC,AAACC,OAC3B,oBAACC,OACCC,IAAKF,MAAMG,IAAI,CACfC,IAAKJ,MAAMK,KAAK,CAChBC,IAAKN,MAAMG,IAAI,CACfI,MAAM,KACNC,OAAO,KACPC,QAAQ,WAKhBC,0BAA0B,mBAG9BjC,cACF,KACGJ,cACJ,AACH,CAAE"}
@@ -1,2 +1,2 @@
1
- import React from"react";import Icon from"../Icon";import cn from"../utils/cn";const ProductIcon=({name,hoverName,selected,size,unavailable})=>{if(!name){return null}const innerSize=size-2;const iconSize=size/6*4;return React.createElement("span",{className:cn("block p-px bg-gradient-to-b",{"from-neutral-1000 to-neutral-1300 dark:from-neutral-000 dark:to-neutral-300":selected,"from-neutral-000 to-neutral-300 dark:from-neutral-1000 dark:to-neutral-1300":!selected}),style:{width:size,height:size,borderRadius:size/4}},React.createElement("span",{className:cn("flex items-center justify-center",{"bg-neutral-1200 dark:bg-neutral-100":selected,"bg-neutral-100 dark:bg-neutral-1200":!selected,"group-hover/product-tile:bg-neutral-000 dark:group-hover/product-tile:bg-neutral-1300":selected===false&&!unavailable}),style:{height:innerSize,borderRadius:size/4}},hoverName?React.createElement(Icon,{name:hoverName,size:`${iconSize}px`,additionalCSS:cn({"hidden group-hover/product-tile:flex":!selected,flex:selected})}):null,React.createElement(Icon,{name:name,size:`${iconSize}px`,additionalCSS:cn({"text-neutral-000 dark:text-neutral-1300":selected&&!unavailable,"text-neutral-1300 dark:text-neutral-000":!selected&&!unavailable,"text-neutral-700 dark:text-neutral-600":selected&&unavailable,"text-neutral-600 dark:text-neutral-700":!selected&&unavailable,"flex group-hover/product-tile:hidden":hoverName&&!selected,hidden:hoverName&&selected})})))};export default ProductIcon;
1
+ import React from"react";import Icon from"../Icon";import cn from"../utils/cn";const ProductIcon=({name,hoverName,selected,size,unavailable})=>{if(!name){return null}const iconSize=size/6*4;return React.createElement("span",{className:"flex items-center justify-center border border-neutral-300 dark:border-neutral-1000 rounded-xl bg-neutral-100 dark:bg-neutral-1200 hover:bg-neutral-000 dark:hover:bg-neutral-1300 active:bg-neutral-000 dark:active:bg-neutral-1300",style:{width:size,height:size}},hoverName?React.createElement(Icon,{name:hoverName,size:`${iconSize}px`,additionalCSS:cn({"hidden group-hover/product-tile:flex":!selected,flex:selected})}):null,React.createElement(Icon,{name:name,size:`${iconSize}px`,additionalCSS:cn({"text-neutral-000 dark:text-neutral-1300":selected&&!unavailable,"text-neutral-1300 dark:text-neutral-000":!selected&&!unavailable,"text-neutral-700 dark:text-neutral-600":selected&&unavailable,"text-neutral-600 dark:text-neutral-700":!selected&&unavailable,"flex group-hover/product-tile:hidden":hoverName&&!selected,hidden:hoverName&&selected})}))};export default ProductIcon;
2
2
  //# sourceMappingURL=ProductIcon.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/core/ProductTile/ProductIcon.tsx"],"sourcesContent":["import React from \"react\";\nimport Icon from \"../Icon\";\nimport { IconName } from \"../Icon/types\";\nimport cn from \"../utils/cn\";\n\ntype ProductIconProps = {\n name?: IconName;\n hoverName?: IconName;\n selected?: boolean;\n size: number;\n unavailable: boolean;\n};\n\nconst ProductIcon = ({\n name,\n hoverName,\n selected,\n size,\n unavailable,\n}: ProductIconProps) => {\n if (!name) {\n return null;\n }\n\n // Inner container is 2px smaller to account for 1px padding on each side\n const innerSize = size - 2;\n\n // Padding around the icon is 1/4 the icon's size, so the icon is 4 of 6 parts\n const iconSize = (size / 6) * 4;\n\n return (\n // Outer container, contains the gradient stroke (since we can't natively have CSS gradient strokes)\n <span\n className={cn(\"block p-px bg-gradient-to-b\", {\n \"from-neutral-1000 to-neutral-1300 dark:from-neutral-000 dark:to-neutral-300\":\n selected,\n \"from-neutral-000 to-neutral-300 dark:from-neutral-1000 dark:to-neutral-1300\":\n !selected,\n })}\n style={{ width: size, height: size, borderRadius: size / 4 }}\n >\n {/* Inner container, contains the foreground container element */}\n <span\n className={cn(\"flex items-center justify-center\", {\n \"bg-neutral-1200 dark:bg-neutral-100\": selected,\n \"bg-neutral-100 dark:bg-neutral-1200\": !selected,\n \"group-hover/product-tile:bg-neutral-000 dark:group-hover/product-tile:bg-neutral-1300\":\n selected === false && !unavailable,\n })}\n style={{ height: innerSize, borderRadius: size / 4 }}\n >\n {/* The product icons themselves */}\n {hoverName ? (\n <Icon\n name={hoverName}\n size={`${iconSize}px`}\n additionalCSS={cn({\n \"hidden group-hover/product-tile:flex\": !selected,\n flex: selected,\n })}\n />\n ) : null}\n <Icon\n name={name}\n size={`${iconSize}px`}\n additionalCSS={cn({\n \"text-neutral-000 dark:text-neutral-1300\": selected && !unavailable,\n \"text-neutral-1300 dark:text-neutral-000\":\n !selected && !unavailable,\n \"text-neutral-700 dark:text-neutral-600\": selected && unavailable,\n \"text-neutral-600 dark:text-neutral-700\": !selected && unavailable,\n \"flex group-hover/product-tile:hidden\": hoverName && !selected,\n hidden: hoverName && selected,\n })}\n />\n </span>\n </span>\n );\n};\n\nexport default ProductIcon;\n"],"names":["React","Icon","cn","ProductIcon","name","hoverName","selected","size","unavailable","innerSize","iconSize","span","className","style","width","height","borderRadius","additionalCSS","flex","hidden"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAAOC,SAAU,SAAU,AAE3B,QAAOC,OAAQ,aAAc,CAU7B,MAAMC,YAAc,CAAC,CACnBC,IAAI,CACJC,SAAS,CACTC,QAAQ,CACRC,IAAI,CACJC,WAAW,CACM,IACjB,GAAI,CAACJ,KAAM,CACT,OAAO,IACT,CAGA,MAAMK,UAAYF,KAAO,EAGzB,MAAMG,SAAW,AAACH,KAAO,EAAK,EAE9B,OAEE,oBAACI,QACCC,UAAWV,GAAG,8BAA+B,CAC3C,8EACEI,SACF,8EACE,CAACA,QACL,GACAO,MAAO,CAAEC,MAAOP,KAAMQ,OAAQR,KAAMS,aAAcT,KAAO,CAAE,GAG3D,oBAACI,QACCC,UAAWV,GAAG,mCAAoC,CAChD,sCAAuCI,SACvC,sCAAuC,CAACA,SACxC,wFACEA,WAAa,OAAS,CAACE,WAC3B,GACAK,MAAO,CAAEE,OAAQN,UAAWO,aAAcT,KAAO,CAAE,GAGlDF,UACC,oBAACJ,MACCG,KAAMC,UACNE,KAAM,CAAC,EAAEG,SAAS,EAAE,CAAC,CACrBO,cAAef,GAAG,CAChB,uCAAwC,CAACI,SACzCY,KAAMZ,QACR,KAEA,KACJ,oBAACL,MACCG,KAAMA,KACNG,KAAM,CAAC,EAAEG,SAAS,EAAE,CAAC,CACrBO,cAAef,GAAG,CAChB,0CAA2CI,UAAY,CAACE,YACxD,0CACE,CAACF,UAAY,CAACE,YAChB,yCAA0CF,UAAYE,YACtD,yCAA0C,CAACF,UAAYE,YACvD,uCAAwCH,WAAa,CAACC,SACtDa,OAAQd,WAAaC,QACvB,MAKV,CAEA,gBAAeH,WAAY"}
1
+ {"version":3,"sources":["../../../src/core/ProductTile/ProductIcon.tsx"],"sourcesContent":["import React from \"react\";\nimport Icon from \"../Icon\";\nimport { IconName } from \"../Icon/types\";\nimport cn from \"../utils/cn\";\n\ntype ProductIconProps = {\n name?: IconName;\n hoverName?: IconName;\n selected?: boolean;\n size: number;\n unavailable: boolean;\n};\n\nconst ProductIcon = ({\n name,\n hoverName,\n selected,\n size,\n unavailable,\n}: ProductIconProps) => {\n if (!name) {\n return null;\n }\n\n // Padding around the icon is 1/4 the icon's size, so the icon is 4 of 6 parts\n const iconSize = (size / 6) * 4;\n\n return (\n // Outer container, contains the gradient stroke (since we can't natively have CSS gradient strokes)\n\n <span\n className=\"flex items-center justify-center border border-neutral-300 dark:border-neutral-1000 rounded-xl\n bg-neutral-100 dark:bg-neutral-1200 hover:bg-neutral-000 dark:hover:bg-neutral-1300 active:bg-neutral-000 dark:active:bg-neutral-1300\"\n style={{ width: size, height: size }}\n >\n {/* The product icons themselves */}\n {hoverName ? (\n <Icon\n name={hoverName}\n size={`${iconSize}px`}\n additionalCSS={cn({\n \"hidden group-hover/product-tile:flex\": !selected,\n flex: selected,\n })}\n />\n ) : null}\n <Icon\n name={name}\n size={`${iconSize}px`}\n additionalCSS={cn({\n \"text-neutral-000 dark:text-neutral-1300\": selected && !unavailable,\n \"text-neutral-1300 dark:text-neutral-000\": !selected && !unavailable,\n \"text-neutral-700 dark:text-neutral-600\": selected && unavailable,\n \"text-neutral-600 dark:text-neutral-700\": !selected && unavailable,\n \"flex group-hover/product-tile:hidden\": hoverName && !selected,\n hidden: hoverName && selected,\n })}\n />\n </span>\n );\n};\n\nexport default ProductIcon;\n"],"names":["React","Icon","cn","ProductIcon","name","hoverName","selected","size","unavailable","iconSize","span","className","style","width","height","additionalCSS","flex","hidden"],"mappings":"AAAA,OAAOA,UAAW,OAAQ,AAC1B,QAAOC,SAAU,SAAU,AAE3B,QAAOC,OAAQ,aAAc,CAU7B,MAAMC,YAAc,CAAC,CACnBC,IAAI,CACJC,SAAS,CACTC,QAAQ,CACRC,IAAI,CACJC,WAAW,CACM,IACjB,GAAI,CAACJ,KAAM,CACT,OAAO,IACT,CAGA,MAAMK,SAAW,AAACF,KAAO,EAAK,EAE9B,OAGE,oBAACG,QACCC,UAAU,uOAEVC,MAAO,CAAEC,MAAON,KAAMO,OAAQP,IAAK,GAGlCF,UACC,oBAACJ,MACCG,KAAMC,UACNE,KAAM,CAAC,EAAEE,SAAS,EAAE,CAAC,CACrBM,cAAeb,GAAG,CAChB,uCAAwC,CAACI,SACzCU,KAAMV,QACR,KAEA,KACJ,oBAACL,MACCG,KAAMA,KACNG,KAAM,CAAC,EAAEE,SAAS,EAAE,CAAC,CACrBM,cAAeb,GAAG,CAChB,0CAA2CI,UAAY,CAACE,YACxD,0CAA2C,CAACF,UAAY,CAACE,YACzD,yCAA0CF,UAAYE,YACtD,yCAA0C,CAACF,UAAYE,YACvD,uCAAwCH,WAAa,CAACC,SACtDW,OAAQZ,WAAaC,QACvB,KAIR,CAEA,gBAAeH,WAAY"}
@@ -1,3 +1,3 @@
1
1
  <svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M34 11H94C105.046 11 114 19.9543 114 31V105.41C114 110.623 107.81 113.356 103.957 109.844L81.1452 89.0442C80.4084 88.3724 79.4473 88 78.4502 88H34C22.9543 88 14 79.0457 14 68V31C14 19.9543 22.9543 11 34 11Z" stroke="currentColor" stroke-width="5"/>
2
+ <path d="M38 11H90C103.255 11 114 21.7452 114 35V105.41C114 110.623 107.81 113.356 103.957 109.844L81.1452 89.0442C80.4084 88.3724 79.4473 88 78.4502 88H38C24.7452 88 14 77.2548 14 64V35C14 21.7452 24.7452 11 38 11Z" stroke="currentColor" stroke-width="6"/>
3
3
  </svg>
@@ -1,4 +1 @@
1
- <svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M76 11H93C106.255 11 117 21.7452 117 35V52M52 11H35C21.7452 11 11 21.7452 11 35V52M11 76V93C11 106.255 21.7452 117 35 117H52M117 76V93C117 106.255 106.255 117 93 117H76" stroke="currentColor" stroke-width="5" stroke-linecap="round"/>
3
- <path d="M43 66L60 83L86 45" stroke="currentColor" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
4
- </svg>
1
+ <svg fill="none" height="128" viewBox="0 0 128 128" width="128" xmlns="http://www.w3.org/2000/svg"><g stroke="currentColor" stroke-linecap="round" stroke-width="6"><path d="m76 11h17c13.255 0 24 10.7452 24 24v17m-65-41h-17c-13.2548 0-24 10.7452-24 24v17m0 24v17c0 13.255 10.7452 24 24 24h17m65-41v17c0 13.255-10.745 24-24 24h-17"/><path d="m43 66 17 17 26-38" stroke-linejoin="round"/></g></svg>
@@ -1,6 +1,6 @@
1
1
  <svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M115.029 117H64V78.0148C64 77.1881 64.9462 76.7184 65.6047 77.2184L115.634 115.204C116.397 115.783 115.987 117 115.029 117Z" stroke="currentColor" stroke-width="5" stroke-linecap="round"/>
3
- <path d="M11 52V77C11 99.0914 28.9086 117 51 117H64" stroke="currentColor" stroke-width="5" stroke-linecap="round"/>
4
- <path d="M12.9708 11L64 11L64 49.9852C64 50.8119 63.0538 51.2816 62.3953 50.7816L12.366 12.7965C11.603 12.2171 12.0127 11 12.9708 11Z" stroke="currentColor" stroke-width="5" stroke-linecap="round"/>
5
- <path d="M117 76L117 51C117 28.9086 99.0914 11 77 11L64 11" stroke="currentColor" stroke-width="5" stroke-linecap="round"/>
2
+ <path d="M115.029 117H64V78.0148C64 77.1881 64.9462 76.7184 65.6047 77.2184L115.634 115.204C116.397 115.783 115.987 117 115.029 117Z" stroke="currentColor" stroke-width="6" stroke-linecap="round"/>
3
+ <path d="M11 52V77C11 99.0914 28.9086 117 51 117H64" stroke="currentColor" stroke-width="6" stroke-linecap="round"/>
4
+ <path d="M12.9708 11L64 11L64 49.9852C64 50.8119 63.0538 51.2816 62.3953 50.7816L12.366 12.7965C11.603 12.2171 12.0127 11 12.9708 11Z" stroke="currentColor" stroke-width="6" stroke-linecap="round"/>
5
+ <path d="M117 76L117 51C117 28.9086 99.0914 11 77 11L64 11" stroke="currentColor" stroke-width="6" stroke-linecap="round"/>
6
6
  </svg>
@@ -1,3 +1,3 @@
1
1
  <svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M56.6034 13.8927L16.8017 77.8875C15.1445 80.552 17.0606 84 20.1984 84H62C63.1046 84 64 84.8954 64 86V111.995C64 116.018 69.2718 117.524 71.3967 114.107L111.198 50.1125C112.855 47.4481 110.939 44 107.802 44H66C64.8954 44 64 43.1046 64 42V16.0052C64 11.9818 58.7282 10.4762 56.6034 13.8927Z" stroke="currentColor" stroke-width="5"/>
2
+ <path d="M56.6038 13.8927L16.8021 77.8875C15.1449 80.552 17.061 84 20.1988 84H62.0004C63.105 84 64.0004 84.8954 64.0004 86V111.995C64.0004 116.018 69.2722 117.524 71.397 114.107L111.199 50.1125C112.856 47.4481 110.94 44 107.802 44H66.0004C64.8958 44 64.0004 43.1046 64.0004 42V16.0052C64.0004 11.9818 58.7286 10.4762 56.6038 13.8927Z" stroke="currentColor" stroke-width="6"/>
3
3
  </svg>
@@ -1,3 +1,3 @@
1
1
  <svg width="128" height="128" viewBox="0 0 128 128" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M41.2306 109.769L17.8256 25.2088C16.5818 20.7149 20.7149 16.5818 25.2088 17.8256L109.769 41.2306C115.314 42.7655 115.729 50.4697 110.38 52.5907L72.2134 67.7257C70.1627 68.5389 68.5389 70.1627 67.7257 72.2134L52.5907 110.38C50.4697 115.729 42.7655 115.314 41.2306 109.769Z" stroke="currentColor" stroke-width="5"/>
2
+ <path d="M41.2306 109.769L17.8256 25.2088C16.5818 20.7149 20.7149 16.5818 25.2088 17.8256L109.769 41.2306C115.314 42.7655 115.729 50.4697 110.38 52.5907L72.2134 67.7257C70.1627 68.5389 68.5389 70.1627 67.7257 72.2134L52.5907 110.38C50.4697 115.729 42.7655 115.314 41.2306 109.769Z" stroke="currentColor" stroke-width="6"/>
3
3
  </svg>
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/remote-blogs-posts.js"],"sourcesContent":["/* global __ENABLE_FETCH_WITH_CREDENTIALS__ */\n\nimport { isJsonResponse } from \"./remote-data-util\";\n\nconst fetchBlogPosts = async (store, blogUrl) => {\n try {\n if (!blogUrl) {\n console.log(\n `Skipping fetching blog posts, invalid blogUrl: \"${blogUrl}\"`,\n );\n return;\n }\n\n const options = {\n headers: {\n accept: \"application/json\",\n },\n cache: \"no-cache\",\n };\n\n if (__ENABLE_FETCH_WITH_CREDENTIALS__) {\n options.credentials = \"include\";\n }\n\n const res = await fetch(blogUrl, options);\n\n if (isJsonResponse(res.headers.get(\"content-type\"))) {\n const payload = await res.json();\n store.dispatch({ type: \"blog/loaded\", payload });\n } else {\n throw new Error(\"Blog posts url is not serving json\");\n }\n } catch (e) {\n console.warn(\"Could not fetch blog posts due to error:\", e);\n }\n};\n\nconst initialState = { recent: null };\n\nconst REDUCER_KEY = \"blogPosts\";\n\nconst reducerBlogPosts = {\n [REDUCER_KEY]: (state = initialState, action) => {\n switch (action.type) {\n case \"blog/loaded\":\n return { ...state, recent: action.payload };\n default:\n return state;\n }\n },\n};\n\nconst selectRecentBlogPosts = (store) => store.getState()[REDUCER_KEY]?.recent;\n\nexport { fetchBlogPosts, reducerBlogPosts, selectRecentBlogPosts };\n"],"names":["isJsonResponse","fetchBlogPosts","store","blogUrl","console","log","options","headers","accept","cache","credentials","res","fetch","get","payload","json","dispatch","type","Error","e","warn","initialState","recent","REDUCER_KEY","reducerBlogPosts","state","action","selectRecentBlogPosts","getState"],"mappings":"AAEA,OAASA,cAAc,KAAQ,oBAAqB,CAEpD,MAAMC,eAAiB,MAAOC,MAAOC,WACnC,GAAI,CACF,GAAI,CAACA,QAAS,CACZC,QAAQC,GAAG,CACT,CAAC,gDAAgD,EAAEF,QAAQ,CAAC,CAAC,EAE/D,MACF,CAEA,MAAMG,QAAU,CACdC,QAAS,CACPC,OAAQ,kBACV,EACAC,MAAO,UACT,EAEA,SAAuC,CACrCH,QAAQI,WAAW,CAAG,SACxB,CAEA,MAAMC,IAAM,MAAMC,MAAMT,QAASG,SAEjC,GAAIN,eAAeW,IAAIJ,OAAO,CAACM,GAAG,CAAC,iBAAkB,CACnD,MAAMC,QAAU,MAAMH,IAAII,IAAI,GAC9Bb,MAAMc,QAAQ,CAAC,CAAEC,KAAM,cAAeH,OAAQ,EAChD,KAAO,CACL,MAAM,IAAII,MAAM,qCAClB,CACF,CAAE,MAAOC,EAAG,CACVf,QAAQgB,IAAI,CAAC,2CAA4CD,EAC3D,CACF,EAEA,MAAME,aAAe,CAAEC,OAAQ,IAAK,EAEpC,MAAMC,YAAc,YAEpB,MAAMC,iBAAmB,CACvB,CAACD,YAAY,CAAE,CAACE,MAAQJ,YAAY,CAAEK,UACpC,OAAQA,OAAOT,IAAI,EACjB,IAAK,cACH,MAAO,CAAE,GAAGQ,KAAK,CAAEH,OAAQI,OAAOZ,OAAO,AAAC,CAC5C,SACE,OAAOW,KACX,CACF,CACF,EAEA,MAAME,sBAAwB,AAACzB,OAAUA,MAAM0B,QAAQ,EAAE,CAACL,YAAY,EAAED,MAExE,QAASrB,cAAc,CAAEuB,gBAAgB,CAAEG,qBAAqB,CAAG"}
1
+ {"version":3,"sources":["../../src/core/remote-blogs-posts.js"],"sourcesContent":["/* global __ENABLE_FETCH_WITH_CREDENTIALS__ */\n\nimport { isJsonResponse } from \"./remote-data-util\";\n\nconst fetchBlogPosts = async (store, blogUrl) => {\n try {\n if (!blogUrl) {\n console.log(\n `Skipping fetching blog posts, invalid blogUrl: \"${blogUrl}\"`,\n );\n return;\n }\n\n const options = {\n headers: {\n accept: \"application/json\",\n },\n cache: \"no-cache\",\n };\n\n if (__ENABLE_FETCH_WITH_CREDENTIALS__) {\n options.credentials = \"include\";\n }\n\n const res = await fetch(blogUrl, options);\n\n if (isJsonResponse(res.headers.get(\"content-type\"))) {\n const payload = await res.json();\n store.dispatch({ type: \"blog/loaded\", payload });\n } else {\n throw new Error(\"Blog posts url is not serving json\");\n }\n } catch (e) {\n console.warn(\"Could not fetch blog posts due to error:\", e);\n }\n};\n\nconst initialState = { recent: null };\n\nconst REDUCER_KEY = \"blogPosts\";\n\nconst reducerBlogPosts = {\n [REDUCER_KEY]: (state = initialState, action) => {\n switch (action.type) {\n case \"blog/loaded\":\n return { ...state, recent: action.payload };\n default:\n return state;\n }\n },\n};\n\nconst selectRecentBlogPosts = (store) => store.getState()[REDUCER_KEY]?.recent;\n\nexport { fetchBlogPosts, reducerBlogPosts, selectRecentBlogPosts };\n"],"names":["isJsonResponse","fetchBlogPosts","store","blogUrl","console","log","options","headers","accept","cache","credentials","res","fetch","get","payload","json","dispatch","type","Error","e","warn","initialState","recent","REDUCER_KEY","reducerBlogPosts","state","action","selectRecentBlogPosts","getState"],"mappings":"AAEA,OAASA,cAAc,KAAQ,oBAAqB,CAEpD,MAAMC,eAAiB,MAAOC,MAAOC,WACnC,GAAI,CACF,GAAI,CAACA,QAAS,CACZC,QAAQC,GAAG,CACT,CAAC,gDAAgD,EAAEF,QAAQ,CAAC,CAAC,EAE/D,MACF,CAEA,MAAMG,QAAU,CACdC,QAAS,CACPC,OAAQ,kBACV,EACAC,MAAO,UACT,EAEA,GAWJ,MAX2C,CACrCH,QAAQI,WAAW,CAAG,SACxB,CAEA,MAAMC,IAAM,MAAMC,MAAMT,QAASG,SAEjC,GAAIN,eAAeW,IAAIJ,OAAO,CAACM,GAAG,CAAC,iBAAkB,CACnD,MAAMC,QAAU,MAAMH,IAAII,IAAI,GAC9Bb,MAAMc,QAAQ,CAAC,CAAEC,KAAM,cAAeH,OAAQ,EAChD,KAAO,CACL,MAAM,IAAII,MAAM,qCAClB,CACF,CAAE,MAAOC,EAAG,CACVf,QAAQgB,IAAI,CAAC,2CAA4CD,EAC3D,CACF,EAEA,MAAME,aAAe,CAAEC,OAAQ,IAAK,EAEpC,MAAMC,YAAc,YAEpB,MAAMC,iBAAmB,CACvB,CAACD,YAAY,CAAE,CAACE,MAAQJ,YAAY,CAAEK,UACpC,OAAQA,OAAOT,IAAI,EACjB,IAAK,cACH,MAAO,CAAE,GAAGQ,KAAK,CAAEH,OAAQI,OAAOZ,OAAO,AAAC,CAC5C,SACE,OAAOW,KACX,CACF,CACF,EAEA,MAAME,sBAAwB,AAACzB,OAAUA,MAAM0B,QAAQ,EAAE,CAACL,YAAY,EAAED,MAExE,QAASrB,cAAc,CAAEuB,gBAAgB,CAAEG,qBAAqB,CAAG"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/remote-session-data.js"],"sourcesContent":["/* global __ENABLE_FETCH_WITH_CREDENTIALS__ */\n\n// Fetches current users session data\n// Assumes an authenticated session, so will only work when used on ably.com/ably.io\n\nimport { isJsonResponse } from \"./remote-data-util\";\n\nconst NOT_FOUND_ERROR_CODE = \"not-found\";\n\nconst fetchSessionData = async (store, sessionUrl) => {\n const sessionLoaded = (payload = {}) =>\n store.dispatch({ type: \"session/loaded\", payload });\n\n try {\n if (!sessionUrl) {\n console.log(\n `Skipping fetching session, invalid sessionUrl: \"${sessionUrl}\"`,\n );\n sessionLoaded();\n return;\n }\n\n const options = {\n headers: {\n accept: \"application/json\",\n },\n cache: \"no-cache\",\n };\n\n if (__ENABLE_FETCH_WITH_CREDENTIALS__) {\n options.credentials = \"include\";\n }\n\n const res = await fetch(sessionUrl, options);\n const jsonResponse = isJsonResponse(res.headers.get(\"content-type\"));\n\n if (!jsonResponse) {\n throw new Error(\"Session endpoint is not serving json\");\n }\n\n const payload = await res.json();\n\n if (payload.error === NOT_FOUND_ERROR_CODE) {\n sessionLoaded();\n } else {\n sessionLoaded(payload);\n }\n } catch (e) {\n sessionLoaded();\n console.warn(\"Could not fetch session data due to error:\", e);\n }\n};\n\nconst initialState = { data: null };\n\nconst REDUCER_KEY = \"session\";\n\nconst reducerSessionData = {\n [REDUCER_KEY]: (state = initialState, action) => {\n switch (action.type) {\n case \"session/loaded\":\n return { ...state, data: action.payload };\n default:\n return state;\n }\n },\n};\n\nconst selectSessionData = (store) => store.getState()[REDUCER_KEY]?.data;\n\nexport { fetchSessionData, reducerSessionData, selectSessionData };\n"],"names":["isJsonResponse","NOT_FOUND_ERROR_CODE","fetchSessionData","store","sessionUrl","sessionLoaded","payload","dispatch","type","console","log","options","headers","accept","cache","credentials","res","fetch","jsonResponse","get","Error","json","error","e","warn","initialState","data","REDUCER_KEY","reducerSessionData","state","action","selectSessionData","getState"],"mappings":"AAKA,OAASA,cAAc,KAAQ,oBAAqB,CAEpD,MAAMC,qBAAuB,YAE7B,MAAMC,iBAAmB,MAAOC,MAAOC,cACrC,MAAMC,cAAgB,CAACC,QAAU,CAAC,CAAC,GACjCH,MAAMI,QAAQ,CAAC,CAAEC,KAAM,iBAAkBF,OAAQ,GAEnD,GAAI,CACF,GAAI,CAACF,WAAY,CACfK,QAAQC,GAAG,CACT,CAAC,gDAAgD,EAAEN,WAAW,CAAC,CAAC,EAElEC,gBACA,MACF,CAEA,MAAMM,QAAU,CACdC,QAAS,CACPC,OAAQ,kBACV,EACAC,MAAO,UACT,EAEA,SAAuC,CACrCH,QAAQI,WAAW,CAAG,SACxB,CAEA,MAAMC,IAAM,MAAMC,MAAMb,WAAYO,SACpC,MAAMO,aAAelB,eAAegB,IAAIJ,OAAO,CAACO,GAAG,CAAC,iBAEpD,GAAI,CAACD,aAAc,CACjB,MAAM,IAAIE,MAAM,uCAClB,CAEA,MAAMd,QAAU,MAAMU,IAAIK,IAAI,GAE9B,GAAIf,QAAQgB,KAAK,GAAKrB,qBAAsB,CAC1CI,eACF,KAAO,CACLA,cAAcC,QAChB,CACF,CAAE,MAAOiB,EAAG,CACVlB,gBACAI,QAAQe,IAAI,CAAC,6CAA8CD,EAC7D,CACF,EAEA,MAAME,aAAe,CAAEC,KAAM,IAAK,EAElC,MAAMC,YAAc,UAEpB,MAAMC,mBAAqB,CACzB,CAACD,YAAY,CAAE,CAACE,MAAQJ,YAAY,CAAEK,UACpC,OAAQA,OAAOtB,IAAI,EACjB,IAAK,iBACH,MAAO,CAAE,GAAGqB,KAAK,CAAEH,KAAMI,OAAOxB,OAAO,AAAC,CAC1C,SACE,OAAOuB,KACX,CACF,CACF,EAEA,MAAME,kBAAoB,AAAC5B,OAAUA,MAAM6B,QAAQ,EAAE,CAACL,YAAY,EAAED,IAEpE,QAASxB,gBAAgB,CAAE0B,kBAAkB,CAAEG,iBAAiB,CAAG"}
1
+ {"version":3,"sources":["../../src/core/remote-session-data.js"],"sourcesContent":["/* global __ENABLE_FETCH_WITH_CREDENTIALS__ */\n\n// Fetches current users session data\n// Assumes an authenticated session, so will only work when used on ably.com/ably.io\n\nimport { isJsonResponse } from \"./remote-data-util\";\n\nconst NOT_FOUND_ERROR_CODE = \"not-found\";\n\nconst fetchSessionData = async (store, sessionUrl) => {\n const sessionLoaded = (payload = {}) =>\n store.dispatch({ type: \"session/loaded\", payload });\n\n try {\n if (!sessionUrl) {\n console.log(\n `Skipping fetching session, invalid sessionUrl: \"${sessionUrl}\"`,\n );\n sessionLoaded();\n return;\n }\n\n const options = {\n headers: {\n accept: \"application/json\",\n },\n cache: \"no-cache\",\n };\n\n if (__ENABLE_FETCH_WITH_CREDENTIALS__) {\n options.credentials = \"include\";\n }\n\n const res = await fetch(sessionUrl, options);\n const jsonResponse = isJsonResponse(res.headers.get(\"content-type\"));\n\n if (!jsonResponse) {\n throw new Error(\"Session endpoint is not serving json\");\n }\n\n const payload = await res.json();\n\n if (payload.error === NOT_FOUND_ERROR_CODE) {\n sessionLoaded();\n } else {\n sessionLoaded(payload);\n }\n } catch (e) {\n sessionLoaded();\n console.warn(\"Could not fetch session data due to error:\", e);\n }\n};\n\nconst initialState = { data: null };\n\nconst REDUCER_KEY = \"session\";\n\nconst reducerSessionData = {\n [REDUCER_KEY]: (state = initialState, action) => {\n switch (action.type) {\n case \"session/loaded\":\n return { ...state, data: action.payload };\n default:\n return state;\n }\n },\n};\n\nconst selectSessionData = (store) => store.getState()[REDUCER_KEY]?.data;\n\nexport { fetchSessionData, reducerSessionData, selectSessionData };\n"],"names":["isJsonResponse","NOT_FOUND_ERROR_CODE","fetchSessionData","store","sessionUrl","sessionLoaded","payload","dispatch","type","console","log","options","headers","accept","cache","credentials","res","fetch","jsonResponse","get","Error","json","error","e","warn","initialState","data","REDUCER_KEY","reducerSessionData","state","action","selectSessionData","getState"],"mappings":"AAKA,OAASA,cAAc,KAAQ,oBAAqB,CAEpD,MAAMC,qBAAuB,YAE7B,MAAMC,iBAAmB,MAAOC,MAAOC,cACrC,MAAMC,cAAgB,CAACC,QAAU,CAAC,CAAC,GACjCH,MAAMI,QAAQ,CAAC,CAAEC,KAAM,iBAAkBF,OAAQ,GAEnD,GAAI,CACF,GAAI,CAACF,WAAY,CACfK,QAAQC,GAAG,CACT,CAAC,gDAAgD,EAAEN,WAAW,CAAC,CAAC,EAElEC,gBACA,MACF,CAEA,MAAMM,QAAU,CACdC,QAAS,CACPC,OAAQ,kBACV,EACAC,MAAO,UACT,EAEA,GACkB,MADqB,CACrCH,QAAQI,WAAW,CAAG,SACxB,CAEA,MAAMC,IAAM,MAAMC,MAAMb,WAAYO,SACpC,MAAMO,aAAelB,eAAegB,IAAIJ,OAAO,CAACO,GAAG,CAAC,iBAEpD,GAAI,CAACD,aAAc,CACjB,MAAM,IAAIE,MAAM,uCAClB,CAEA,MAAMd,QAAU,MAAMU,IAAIK,IAAI,GAE9B,GAAIf,QAAQgB,KAAK,GAAKrB,qBAAsB,CAC1CI,eACF,KAAO,CACLA,cAAcC,QAChB,CACF,CAAE,MAAOiB,EAAG,CACVlB,gBACAI,QAAQe,IAAI,CAAC,6CAA8CD,EAC7D,CACF,EAEA,MAAME,aAAe,CAAEC,KAAM,IAAK,EAElC,MAAMC,YAAc,UAEpB,MAAMC,mBAAqB,CACzB,CAACD,YAAY,CAAE,CAACE,MAAQJ,YAAY,CAAEK,UACpC,OAAQA,OAAOtB,IAAI,EACjB,IAAK,iBACH,MAAO,CAAE,GAAGqB,KAAK,CAAEH,KAAMI,OAAOxB,OAAO,AAAC,CAC1C,SACE,OAAOuB,KACX,CACF,CACF,EAEA,MAAME,kBAAoB,AAAC5B,OAAUA,MAAM6B,QAAQ,EAAE,CAACL,YAAY,EAAED,IAEpE,QAASxB,gBAAgB,CAAE0B,kBAAkB,CAAEG,iBAAiB,CAAG"}
@@ -1 +1 @@
1
- <svg width="0" height="0" style="position:absolute"><defs><linearGradient id="aba" x1="74" y1="4" x2="74" y2="104" gradientUnits="userSpaceOnUse"><stop stop-color="#FF5416"/><stop offset="1" stop-color="#FF2739"/></linearGradient><linearGradient id="ada" x1="64" y1="26.421" x2="64" y2="111.391" gradientUnits="userSpaceOnUse"><stop stop-color="#FF5416"/><stop offset="1" stop-color="#FF2739"/></linearGradient><linearGradient id="afa" x1="64" y1="29.85" x2="64" y2="109.883" gradientUnits="userSpaceOnUse"><stop stop-color="#FF5416"/><stop offset="1" stop-color="#FF2739"/></linearGradient><linearGradient id="aia" x1="64" y1="27.103" x2="64" y2="110.608" gradientUnits="userSpaceOnUse"><stop stop-color="#FF5416"/><stop offset="1" stop-color="#FF2739"/></linearGradient><linearGradient id="aga" x1="64" y1="27.103" x2="64" y2="110.608" gradientUnits="userSpaceOnUse"><stop stop-color="#FF5416"/><stop offset="1" stop-color="#FF2739"/></linearGradient><linearGradient id="aka" x1="64" y1="101.232" x2="64" y2="16.969" gradientUnits="userSpaceOnUse"><stop stop-color="#FF5416"/><stop offset="1" stop-color="#FF2739"/></linearGradient><linearGradient id="aoa" x1="64" y1="27.434" x2="64" y2="110.189" gradientUnits="userSpaceOnUse"><stop stop-color="#FF5416"/><stop offset="1" stop-color="#FF2739"/></linearGradient><linearGradient id="aqa" x1="65.785" y1="31.716" x2="65.785" y2="108.821" gradientUnits="userSpaceOnUse"><stop stop-color="#FF5416"/><stop offset="1" stop-color="#FF2739"/></linearGradient></defs><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-ai-transport" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M74 4a5 5 0 0 1 4.808 3.626l5.42 18.975a25 25 0 0 0 17.171 17.17l18.975 5.421a5 5 0 0 1 0 9.616l-18.975 5.42A25 25 0 0 0 84.229 81.4l-5.421 18.975a5 5 0 0 1-9.616 0l-5.42-18.975A25 25 0 0 0 46.6 64.229l-18.975-5.421a5 5 0 0 1 0-9.616l18.975-5.42A25 25 0 0 0 63.771 26.6l5.421-18.975A5 5 0 0 1 74 4Z" fill="url(#aba)"/><path d="m47 95-26 26M31 84 17 98" stroke="url(#aba)" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-ai-transport-mono" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="M74 4a5 5 0 0 1 4.808 3.626l5.42 18.975a25 25 0 0 0 17.171 17.17l18.975 5.421a5 5 0 0 1 0 9.616l-18.975 5.42A25 25 0 0 0 84.229 81.4l-5.421 18.975a5 5 0 0 1-9.616 0l-5.42-18.975A25 25 0 0 0 46.6 64.229l-18.975-5.421a5 5 0 0 1 0-9.616l18.975-5.42A25 25 0 0 0 63.771 26.6l5.421-18.975A5 5 0 0 1 74 4Z" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/><path d="m47 95-26 26M31 84 17 98" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-asset-tracking" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M72.208 116.222C85.188 101.747 109 72.533 109 53c0-24.853-20.147-45-45-45S19 28.147 19 53c0 19.533 23.811 48.747 36.792 63.222 4.435 4.945 11.98 4.945 16.416 0ZM64 71c9.941 0 18-8.059 18-18s-8.059-18-18-18-18 8.059-18 18 8.059 18 18 18Z" fill="url(#ada)"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-asset-tracking-mono" xmlns="http://www.w3.org/2000/svg"><path d="m72.208 116.222-1.861-1.669 1.86 1.669Zm-16.416 0-1.86 1.669 1.86-1.669ZM106.5 53c0 4.412-1.355 9.548-3.723 15.103-2.358 5.532-5.658 11.333-9.396 17.034-7.477 11.404-16.582 22.22-23.034 29.416l3.722 3.338c6.528-7.28 15.82-18.308 23.493-30.013 3.838-5.852 7.302-11.922 9.814-17.814 2.502-5.868 4.124-11.71 4.124-17.064h-5ZM64 10.5c23.472 0 42.5 19.028 42.5 42.5h5c0-26.233-21.266-47.5-47.5-47.5v5ZM21.5 53c0-23.472 19.028-42.5 42.5-42.5v-5C37.767 5.5 16.5 26.767 16.5 53h5Zm36.154 61.553c-6.453-7.196-15.558-18.012-23.035-29.416-3.738-5.701-7.038-11.502-9.396-17.034C22.855 62.548 21.5 57.413 21.5 53h-5c0 5.355 1.622 11.196 4.124 17.064 2.512 5.892 5.976 11.962 9.814 17.815 7.674 11.704 16.965 22.732 23.493 30.012l3.723-3.338Zm12.693 0c-3.442 3.837-9.252 3.837-12.693 0l-3.723 3.338c5.429 6.053 14.71 6.053 20.138 0l-3.722-3.338ZM79.5 53c0 8.56-6.94 15.5-15.5 15.5v5c11.322 0 20.5-9.178 20.5-20.5h-5ZM64 37.5c8.56 0 15.5 6.94 15.5 15.5h5c0-11.322-9.178-20.5-20.5-20.5v5ZM48.5 53c0-8.56 6.94-15.5 15.5-15.5v-5c-11.322 0-20.5 9.178-20.5 20.5h5ZM64 68.5c-8.56 0-15.5-6.94-15.5-15.5h-5c0 11.322 9.178 20.5 20.5 20.5v-5Z" fill="currentColor"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-chat" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.5 35c0-12.426 10.074-22.5 22.5-22.5h60c12.426 0 22.5 10.074 22.5 22.5v74.41c0 7.385-8.77 11.257-14.227 6.281l-22.812-20.8a1.5 1.5 0 0 0-1.01-.391H34c-12.426 0-22.5-10.074-22.5-22.5V35Z" fill="url(#afa)"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-chat-mono" xmlns="http://www.w3.org/2000/svg"><path d="M34 11h60c11.046 0 20 8.954 20 20v74.41c0 5.213-6.19 7.946-10.043 4.434l-22.812-20.8A4 4 0 0 0 78.45 88H34c-11.046 0-20-8.954-20-20V31c0-11.046 8.954-20 20-20Z" stroke="currentColor" stroke-width="5"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-liveobjects" xmlns="http://www.w3.org/2000/svg"><rect x="9" y="9" width="110" height="110" rx="26" fill="url(#aia)"/><path d="m43 66 17 17 26-38" stroke="#fff" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-liveobjects-dark" xmlns="http://www.w3.org/2000/svg"><rect x="9" y="9" width="110" height="110" rx="26" fill="url(#aga)"/><path d="m43 66 17 17 26-38" stroke="#03020D" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-liveobjects-mono" xmlns="http://www.w3.org/2000/svg"><path d="M76 11h17c13.255 0 24 10.745 24 24v17M52 11H35c-13.255 0-24 10.745-24 24v17m0 24v17c0 13.255 10.745 24 24 24h17m65-41v17c0 13.255-10.745 24-24 24H76" stroke="currentColor" stroke-width="5" stroke-linecap="round"/><path d="m43 66 17 17 26-38" stroke="currentColor" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-livesync" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.5 52a2.5 2.5 0 0 0-5 0v25c0 23.472 19.028 42.5 42.5 42.5h64.029c3.353 0 4.787-4.26 2.117-6.288l-50.03-37.985c-2.304-1.75-5.616-.106-5.616 2.788V114.5H51c-20.71 0-37.5-16.79-37.5-37.5V52Zm53-2.015c0 2.894-3.312 4.538-5.617 2.788L10.854 14.788C8.184 12.76 9.618 8.5 12.971 8.5H77c23.472 0 42.5 19.028 42.5 42.5v25a2.5 2.5 0 1 1-5 0V51c0-20.71-16.79-37.5-37.5-37.5H66.5v36.485Z" fill="url(#aka)"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-livesync-mono" xmlns="http://www.w3.org/2000/svg"><path d="M115.029 117H64V78.015a1 1 0 0 1 1.605-.797l50.029 37.986c.763.579.353 1.796-.605 1.796ZM11 52v25c0 22.091 17.909 40 40 40h13M12.97 11H64v38.985a1 1 0 0 1-1.605.797L12.366 12.797c-.763-.58-.353-1.797.605-1.797ZM117 76V51c0-22.091-17.909-40-40-40H64" stroke="currentColor" stroke-width="5" stroke-linecap="round"/></symbol><symbol fill="none" viewBox="0 0 20 20" id="sprite-icon-product-platform" xmlns="http://www.w3.org/2000/svg"><path d="M9.703 1.325a.625.625 0 0 1 .594 0L18.422 5.7a.624.624 0 0 1 0 1.1l-8.126 4.375a.625.625 0 0 1-.593 0L1.578 6.8a.625.625 0 0 1 0-1.1l8.125-4.375Z" fill="#ff5416"/><path d="m2.72 8.835 6.39 3.44a1.875 1.875 0 0 0 1.78 0l6.39-3.44 1.14.615a.625.625 0 0 1 0 1.1l-8.124 4.375a.626.626 0 0 1-.592 0L1.58 10.55a.626.626 0 0 1 0-1.1l1.142-.615Z" fill="#ff5416"/><path d="m9.11 16.026-6.39-3.442-1.14.616a.625.625 0 0 0 0 1.1l8.124 4.375c.184.1.408.1.592 0L18.42 14.3a.626.626 0 0 0 0-1.1l-1.142-.615-6.39 3.442a1.875 1.875 0 0 1-1.778-.001Z" fill="#ff5416"/></symbol><symbol fill="none" viewBox="0 0 20 20" id="sprite-icon-product-platform-mono" xmlns="http://www.w3.org/2000/svg"><path d="M5.357 8.125 1.875 10l3.482 1.875m0-3.75 4.643 2.5 4.643-2.5m-9.286 0L1.875 6.25 10 1.875l8.125 4.375-3.482 1.875m-9.286 3.75L1.875 13.75 10 18.125l8.125-4.375-3.482-1.875m-9.286 0 4.643 2.5 4.643-2.5m0-3.75L18.125 10l-3.482 1.875" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-pubsub" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M54.48 12.572c3.453-5.551 12.02-3.105 12.02 3.433V41.5h41.302c5.099 0 8.212 5.603 5.519 9.933L73.52 115.428c-3.453 5.551-12.02 3.105-12.02-3.433V86.5H20.198c-5.099 0-8.212-5.603-5.52-9.933L54.48 12.572Z" fill="url(#aoa)"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-pubsub-mono" xmlns="http://www.w3.org/2000/svg"><path d="M56.603 13.893 16.802 77.888C15.145 80.552 17.06 84 20.198 84H62a2 2 0 0 1 2 2v25.995c0 4.023 5.272 5.529 7.397 2.112l39.801-63.995c1.657-2.664-.259-6.112-3.396-6.112H66a2 2 0 0 1-2-2V16.005c0-4.023-5.272-5.529-7.397-2.112Z" stroke="currentColor" stroke-width="5"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-spaces" xmlns="http://www.w3.org/2000/svg"><path d="M15.318 25.777c-1.762-6.366 4.093-12.221 10.46-10.46l84.559 23.406c7.856 2.174 8.443 13.088.866 16.093L73.036 69.951a5.5 5.5 0 0 0-3.085 3.085l-15.135 38.167c-3.005 7.577-13.919 6.99-16.093-.866l-23.405-84.56Z" fill="url(#aqa)"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-spaces-mono" xmlns="http://www.w3.org/2000/svg"><path d="m41.23 109.769-23.404-84.56c-1.244-4.494 2.889-8.627 7.383-7.383l84.56 23.405c5.545 1.535 5.96 9.239.611 11.36L72.213 67.726a8 8 0 0 0-4.487 4.487L52.59 110.38c-2.121 5.349-9.825 4.934-11.36-.611Z" stroke="currentColor" stroke-width="5"/></symbol></svg>
1
+ <svg width="0" height="0" style="position:absolute"><defs><linearGradient id="aba" x1="74" y1="4" x2="74" y2="104" gradientUnits="userSpaceOnUse"><stop stop-color="#FF5416"/><stop offset="1" stop-color="#FF2739"/></linearGradient><linearGradient id="ada" x1="64" y1="26.421" x2="64" y2="111.391" gradientUnits="userSpaceOnUse"><stop stop-color="#FF5416"/><stop offset="1" stop-color="#FF2739"/></linearGradient><linearGradient id="afa" x1="64" y1="29.85" x2="64" y2="109.883" gradientUnits="userSpaceOnUse"><stop stop-color="#FF5416"/><stop offset="1" stop-color="#FF2739"/></linearGradient><linearGradient id="aia" x1="64" y1="27.103" x2="64" y2="110.608" gradientUnits="userSpaceOnUse"><stop stop-color="#FF5416"/><stop offset="1" stop-color="#FF2739"/></linearGradient><linearGradient id="aga" x1="64" y1="27.103" x2="64" y2="110.608" gradientUnits="userSpaceOnUse"><stop stop-color="#FF5416"/><stop offset="1" stop-color="#FF2739"/></linearGradient><linearGradient id="aka" x1="64" y1="101.232" x2="64" y2="16.969" gradientUnits="userSpaceOnUse"><stop stop-color="#FF5416"/><stop offset="1" stop-color="#FF2739"/></linearGradient><linearGradient id="aoa" x1="64" y1="27.434" x2="64" y2="110.189" gradientUnits="userSpaceOnUse"><stop stop-color="#FF5416"/><stop offset="1" stop-color="#FF2739"/></linearGradient><linearGradient id="aqa" x1="65.785" y1="31.716" x2="65.785" y2="108.821" gradientUnits="userSpaceOnUse"><stop stop-color="#FF5416"/><stop offset="1" stop-color="#FF2739"/></linearGradient></defs><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-ai-transport" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M74 4a5 5 0 0 1 4.808 3.626l5.42 18.975a25 25 0 0 0 17.171 17.17l18.975 5.421a5 5 0 0 1 0 9.616l-18.975 5.42A25 25 0 0 0 84.229 81.4l-5.421 18.975a5 5 0 0 1-9.616 0l-5.42-18.975A25 25 0 0 0 46.6 64.229l-18.975-5.421a5 5 0 0 1 0-9.616l18.975-5.42A25 25 0 0 0 63.771 26.6l5.421-18.975A5 5 0 0 1 74 4Z" fill="url(#aba)"/><path d="m47 95-26 26M31 84 17 98" stroke="url(#aba)" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-ai-transport-mono" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="M74 4a5 5 0 0 1 4.808 3.626l5.42 18.975a25 25 0 0 0 17.171 17.17l18.975 5.421a5 5 0 0 1 0 9.616l-18.975 5.42A25 25 0 0 0 84.229 81.4l-5.421 18.975a5 5 0 0 1-9.616 0l-5.42-18.975A25 25 0 0 0 46.6 64.229l-18.975-5.421a5 5 0 0 1 0-9.616l18.975-5.42A25 25 0 0 0 63.771 26.6l5.421-18.975A5 5 0 0 1 74 4Z" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/><path d="m47 95-26 26M31 84 17 98" stroke="currentColor" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-asset-tracking" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M72.208 116.222C85.188 101.747 109 72.533 109 53c0-24.853-20.147-45-45-45S19 28.147 19 53c0 19.533 23.811 48.747 36.792 63.222 4.435 4.945 11.98 4.945 16.416 0ZM64 71c9.941 0 18-8.059 18-18s-8.059-18-18-18-18 8.059-18 18 8.059 18 18 18Z" fill="url(#ada)"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-asset-tracking-mono" xmlns="http://www.w3.org/2000/svg"><path d="m72.208 116.222-1.861-1.669 1.86 1.669Zm-16.416 0-1.86 1.669 1.86-1.669ZM106.5 53c0 4.412-1.355 9.548-3.723 15.103-2.358 5.532-5.658 11.333-9.396 17.034-7.477 11.404-16.582 22.22-23.034 29.416l3.722 3.338c6.528-7.28 15.82-18.308 23.493-30.013 3.838-5.852 7.302-11.922 9.814-17.814 2.502-5.868 4.124-11.71 4.124-17.064h-5ZM64 10.5c23.472 0 42.5 19.028 42.5 42.5h5c0-26.233-21.266-47.5-47.5-47.5v5ZM21.5 53c0-23.472 19.028-42.5 42.5-42.5v-5C37.767 5.5 16.5 26.767 16.5 53h5Zm36.154 61.553c-6.453-7.196-15.558-18.012-23.035-29.416-3.738-5.701-7.038-11.502-9.396-17.034C22.855 62.548 21.5 57.413 21.5 53h-5c0 5.355 1.622 11.196 4.124 17.064 2.512 5.892 5.976 11.962 9.814 17.815 7.674 11.704 16.965 22.732 23.493 30.012l3.723-3.338Zm12.693 0c-3.442 3.837-9.252 3.837-12.693 0l-3.723 3.338c5.429 6.053 14.71 6.053 20.138 0l-3.722-3.338ZM79.5 53c0 8.56-6.94 15.5-15.5 15.5v5c11.322 0 20.5-9.178 20.5-20.5h-5ZM64 37.5c8.56 0 15.5 6.94 15.5 15.5h5c0-11.322-9.178-20.5-20.5-20.5v5ZM48.5 53c0-8.56 6.94-15.5 15.5-15.5v-5c-11.322 0-20.5 9.178-20.5 20.5h5ZM64 68.5c-8.56 0-15.5-6.94-15.5-15.5h-5c0 11.322 9.178 20.5 20.5 20.5v-5Z" fill="currentColor"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-chat" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M11.5 35c0-12.426 10.074-22.5 22.5-22.5h60c12.426 0 22.5 10.074 22.5 22.5v74.41c0 7.385-8.77 11.257-14.227 6.281l-22.812-20.8a1.5 1.5 0 0 0-1.01-.391H34c-12.426 0-22.5-10.074-22.5-22.5V35Z" fill="url(#afa)"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-chat-mono" xmlns="http://www.w3.org/2000/svg"><path d="M38 11h52c13.255 0 24 10.745 24 24v70.41c0 5.213-6.19 7.946-10.043 4.434l-22.812-20.8A4 4 0 0 0 78.45 88H38c-13.255 0-24-10.745-24-24V35c0-13.255 10.745-24 24-24Z" stroke="currentColor" stroke-width="6"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-liveobjects" xmlns="http://www.w3.org/2000/svg"><rect x="9" y="9" width="110" height="110" rx="26" fill="url(#aia)"/><path d="m43 66 17 17 26-38" stroke="#fff" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-liveobjects-dark" xmlns="http://www.w3.org/2000/svg"><rect x="9" y="9" width="110" height="110" rx="26" fill="url(#aga)"/><path d="m43 66 17 17 26-38" stroke="#03020D" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-liveobjects-mono" xmlns="http://www.w3.org/2000/svg"><g stroke="currentColor" stroke-linecap="round" stroke-width="6"><path d="M76 11h17c13.255 0 24 10.745 24 24v17M52 11H35c-13.255 0-24 10.745-24 24v17m0 24v17c0 13.255 10.745 24 24 24h17m65-41v17c0 13.255-10.745 24-24 24H76"/><path d="m43 66 17 17 26-38" stroke-linejoin="round"/></g></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-livesync" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M13.5 52a2.5 2.5 0 0 0-5 0v25c0 23.472 19.028 42.5 42.5 42.5h64.029c3.353 0 4.787-4.26 2.117-6.288l-50.03-37.985c-2.304-1.75-5.616-.106-5.616 2.788V114.5H51c-20.71 0-37.5-16.79-37.5-37.5V52Zm53-2.015c0 2.894-3.312 4.538-5.617 2.788L10.854 14.788C8.184 12.76 9.618 8.5 12.971 8.5H77c23.472 0 42.5 19.028 42.5 42.5v25a2.5 2.5 0 1 1-5 0V51c0-20.71-16.79-37.5-37.5-37.5H66.5v36.485Z" fill="url(#aka)"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-livesync-mono" xmlns="http://www.w3.org/2000/svg"><path d="M115.029 117H64V78.015a1 1 0 0 1 1.605-.797l50.029 37.986c.763.579.353 1.796-.605 1.796ZM11 52v25c0 22.091 17.909 40 40 40h13M12.97 11H64v38.985a1 1 0 0 1-1.605.797L12.366 12.797c-.763-.58-.353-1.797.605-1.797ZM117 76V51c0-22.091-17.909-40-40-40H64" stroke="currentColor" stroke-width="6" stroke-linecap="round"/></symbol><symbol fill="none" viewBox="0 0 20 20" id="sprite-icon-product-platform" xmlns="http://www.w3.org/2000/svg"><path d="M9.703 1.325a.625.625 0 0 1 .594 0L18.422 5.7a.624.624 0 0 1 0 1.1l-8.126 4.375a.625.625 0 0 1-.593 0L1.578 6.8a.625.625 0 0 1 0-1.1l8.125-4.375Z" fill="#ff5416"/><path d="m2.72 8.835 6.39 3.44a1.875 1.875 0 0 0 1.78 0l6.39-3.44 1.14.615a.625.625 0 0 1 0 1.1l-8.124 4.375a.626.626 0 0 1-.592 0L1.58 10.55a.626.626 0 0 1 0-1.1l1.142-.615Z" fill="#ff5416"/><path d="m9.11 16.026-6.39-3.442-1.14.616a.625.625 0 0 0 0 1.1l8.124 4.375c.184.1.408.1.592 0L18.42 14.3a.626.626 0 0 0 0-1.1l-1.142-.615-6.39 3.442a1.875 1.875 0 0 1-1.778-.001Z" fill="#ff5416"/></symbol><symbol fill="none" viewBox="0 0 20 20" id="sprite-icon-product-platform-mono" xmlns="http://www.w3.org/2000/svg"><path d="M5.357 8.125 1.875 10l3.482 1.875m0-3.75 4.643 2.5 4.643-2.5m-9.286 0L1.875 6.25 10 1.875l8.125 4.375-3.482 1.875m-9.286 3.75L1.875 13.75 10 18.125l8.125-4.375-3.482-1.875m-9.286 0 4.643 2.5 4.643-2.5m0-3.75L18.125 10l-3.482 1.875" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-pubsub" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M54.48 12.572c3.453-5.551 12.02-3.105 12.02 3.433V41.5h41.302c5.099 0 8.212 5.603 5.519 9.933L73.52 115.428c-3.453 5.551-12.02 3.105-12.02-3.433V86.5H20.198c-5.099 0-8.212-5.603-5.52-9.933L54.48 12.572Z" fill="url(#aoa)"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-pubsub-mono" xmlns="http://www.w3.org/2000/svg"><path d="M56.604 13.893 16.802 77.888C15.145 80.552 17.061 84 20.2 84H62a2 2 0 0 1 2 2v25.995c0 4.023 5.272 5.529 7.397 2.112l39.802-63.995c1.657-2.664-.259-6.112-3.397-6.112H66a2 2 0 0 1-2-2V16.005c0-4.023-5.271-5.529-7.396-2.112Z" stroke="currentColor" stroke-width="6"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-spaces" xmlns="http://www.w3.org/2000/svg"><path d="M15.318 25.777c-1.762-6.366 4.093-12.221 10.46-10.46l84.559 23.406c7.856 2.174 8.443 13.088.866 16.093L73.036 69.951a5.5 5.5 0 0 0-3.085 3.085l-15.135 38.167c-3.005 7.577-13.919 6.99-16.093-.866l-23.405-84.56Z" fill="url(#aqa)"/></symbol><symbol fill="none" viewBox="0 0 128 128" id="sprite-icon-product-spaces-mono" xmlns="http://www.w3.org/2000/svg"><path d="m41.23 109.769-23.404-84.56c-1.244-4.494 2.889-8.627 7.383-7.383l84.56 23.405c5.545 1.535 5.96 9.239.611 11.36L72.213 67.726a8 8 0 0 0-4.487 4.487L52.59 110.38c-2.121 5.349-9.825 4.934-11.36-.611Z" stroke="currentColor" stroke-width="6"/></symbol></svg>
package/index.d.ts CHANGED
@@ -5471,8 +5471,9 @@ type MeganavPanelProps = {
5471
5471
  panelMiddleItems?: React.ReactNode;
5472
5472
  panelRightItems?: MeganavPanelItemLink[];
5473
5473
  panelRightBottom?: React.ReactNode;
5474
+ panelRightBottomClassName?: string;
5474
5475
  };
5475
- export const MeganavPanel: ({ displayProductTile, panelLeft, panelMiddleItems, panelRightItems, panelRightBottom, }: MeganavPanelProps) => import("react/jsx-runtime").JSX.Element;
5476
+ export const MeganavPanel: ({ displayProductTile, panelLeft, panelMiddleItems, panelRightItems, panelRightBottom, panelRightBottomClassName, }: MeganavPanelProps) => import("react/jsx-runtime").JSX.Element;
5476
5477
  export const MeganavPanelFullwidth: ({ panelItems, }: {
5477
5478
  panelItems: FlyoutPanelList[];
5478
5479
  }) => import("react/jsx-runtime").JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ably/ui",
3
- "version": "17.10.1-dev.26bd7a31",
3
+ "version": "17.10.1-dev.5f8eeef5",
4
4
  "description": "Home of the Ably design system library ([design.ably.com](https://design.ably.com)). It provides a showcase, development/test environment and a publishing pipeline for different distributables.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -12,7 +12,9 @@
12
12
  "reset",
13
13
  "tailwind.config.js",
14
14
  "tailwind.extend.js",
15
- "index.d.ts"
15
+ "index.d.ts",
16
+ "AGENTS.md",
17
+ "CLAUDE.md"
16
18
  ],
17
19
  "types": "index.d.ts",
18
20
  "msw": {
@@ -54,7 +56,7 @@
54
56
  "msw": "2.12.0",
55
57
  "msw-storybook-addon": "^2.0.5",
56
58
  "playwright": "^1.49.1",
57
- "posthog-js": "^1.217.4",
59
+ "posthog-js": "^1.301.0",
58
60
  "prettier": "^3.2.5",
59
61
  "storybook": "^10.0.0",
60
62
  "svg-sprite": "^2.0.4",