@ably/ui 17.12.1-dev.ad100591 → 17.12.1-dev.d10f841b
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.
- package/core/Flash.js.map +1 -1
- package/core/Icon/components/icon-display-ephemeral-messages-dark-col.js +2 -0
- package/core/Icon/components/icon-display-ephemeral-messages-dark-col.js.map +1 -0
- package/core/Icon/components/icon-display-message-annotations-dark-col.js +2 -0
- package/core/Icon/components/icon-display-message-annotations-dark-col.js.map +1 -0
- package/core/Icon/components/index.js +1 -1
- package/core/Icon/components/index.js.map +1 -1
- package/core/Icon/computed-icons/display-icons.js +1 -1
- package/core/Icon/computed-icons/display-icons.js.map +1 -1
- package/core/Notice.js +1 -1
- package/core/Notice.js.map +1 -1
- package/core/icons/display/icon-display-ephemeral-messages-dark-col.svg +6 -0
- package/core/icons/display/icon-display-message-annotations-dark-col.svg +11 -0
- package/core/remote-data-store.js +1 -1
- package/core/remote-data-store.js.map +1 -1
- package/core/sprites-display.svg +1 -1
- package/index.d.ts +39 -4
- package/package.json +2 -3
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const displayIcons=["icon-display-48hrs","icon-display-ably-channels","icon-display-about-ably-col","icon-display-api","icon-display-api-keys","icon-display-architectural-guidance","icon-display-asset-tracking-col","icon-display-authentication","icon-display-avatar-stack","icon-display-browser","icon-display-calendar","icon-display-call-mobile","icon-display-careers-col","icon-display-case-studies-col","icon-display-chat-col","icon-display-chat-mono","icon-display-chat-stack","icon-display-chat-stack-col","icon-display-cloud-servers","icon-display-cloud-servers-mono","icon-display-compare-tech-col","icon-display-connection-state-recovery","icon-display-consumer-groups","icon-display-custom","icon-display-custom-cname","icon-display-customers-col","icon-display-data-broadcast-col","icon-display-data-broadcast-mono","icon-display-data-integrity","icon-display-data-synchronization-col","icon-display-database-connector","icon-display-dedicated-cluster","icon-display-deltas","icon-display-docs-col","icon-display-documentation","icon-display-dynamic-channel-groups","icon-display-edge-network","icon-display-elasticity","icon-display-ephemeral-messages","icon-display-equalisers-mono","icon-display-events-col","icon-display-exactly-once-delivery","icon-display-examples-col","icon-display-fan-out","icon-display-firehose","icon-display-gdpr","icon-display-general-comms","icon-display-granular-permissions","icon-display-hipaa","icon-display-hipaa-mono","icon-display-history","icon-display-integrations","icon-display-integrations-col","icon-display-it-support-access","icon-display-it-support-helpdesk","icon-display-kafka-at-the-edge-col","icon-display-laptop","icon-display-last-seen","icon-display-lightbulb-col","icon-display-live-chat","icon-display-live-updates","icon-display-live-updates-results-metrics-col","icon-display-map-pin","icon-display-message","icon-display-message-annotations","icon-display-message-batching","icon-display-message-persistence","icon-display-message-queues","icon-display-multi-user-spaces","icon-display-multi-user-spaces-col","icon-display-observe-analytics","icon-display-padlock-closed","icon-display-platform","icon-display-play","icon-display-premium-support","icon-display-privacy-shield-framework","icon-display-private-link","icon-display-push-notifications","icon-display-push-notifications-col","icon-display-push-notifications-mono","icon-display-quickstart-guides-col","icon-display-reactions","icon-display-read-receipts","icon-display-resources-col","icon-display-rewind","icon-display-sdks","icon-display-sdks-col","icon-display-send-received-messages","icon-display-servers","icon-display-shopping-cart","icon-display-sla","icon-display-soc2-type2","icon-display-soc2-type2-mono","icon-display-something-else","icon-display-something-else-mono","icon-display-subscription-filters","icon-display-support-chat-mono","icon-display-system-metadata","icon-display-tech-account-comms","icon-display-tutorials-demos-col","icon-display-ui","icon-display-ui-mono","icon-display-virtual-events","icon-display-virtual-events-col"];
|
|
1
|
+
export const displayIcons=["icon-display-48hrs","icon-display-ably-channels","icon-display-about-ably-col","icon-display-api","icon-display-api-keys","icon-display-architectural-guidance","icon-display-asset-tracking-col","icon-display-authentication","icon-display-avatar-stack","icon-display-browser","icon-display-calendar","icon-display-call-mobile","icon-display-careers-col","icon-display-case-studies-col","icon-display-chat-col","icon-display-chat-mono","icon-display-chat-stack","icon-display-chat-stack-col","icon-display-cloud-servers","icon-display-cloud-servers-mono","icon-display-compare-tech-col","icon-display-connection-state-recovery","icon-display-consumer-groups","icon-display-custom","icon-display-custom-cname","icon-display-customers-col","icon-display-data-broadcast-col","icon-display-data-broadcast-mono","icon-display-data-integrity","icon-display-data-synchronization-col","icon-display-database-connector","icon-display-dedicated-cluster","icon-display-deltas","icon-display-docs-col","icon-display-documentation","icon-display-dynamic-channel-groups","icon-display-edge-network","icon-display-elasticity","icon-display-ephemeral-messages","icon-display-ephemeral-messages-dark-col","icon-display-equalisers-mono","icon-display-events-col","icon-display-exactly-once-delivery","icon-display-examples-col","icon-display-fan-out","icon-display-firehose","icon-display-gdpr","icon-display-general-comms","icon-display-granular-permissions","icon-display-hipaa","icon-display-hipaa-mono","icon-display-history","icon-display-integrations","icon-display-integrations-col","icon-display-it-support-access","icon-display-it-support-helpdesk","icon-display-kafka-at-the-edge-col","icon-display-laptop","icon-display-last-seen","icon-display-lightbulb-col","icon-display-live-chat","icon-display-live-updates","icon-display-live-updates-results-metrics-col","icon-display-map-pin","icon-display-message","icon-display-message-annotations","icon-display-message-annotations-dark-col","icon-display-message-batching","icon-display-message-persistence","icon-display-message-queues","icon-display-multi-user-spaces","icon-display-multi-user-spaces-col","icon-display-observe-analytics","icon-display-padlock-closed","icon-display-platform","icon-display-play","icon-display-premium-support","icon-display-privacy-shield-framework","icon-display-private-link","icon-display-push-notifications","icon-display-push-notifications-col","icon-display-push-notifications-mono","icon-display-quickstart-guides-col","icon-display-reactions","icon-display-read-receipts","icon-display-resources-col","icon-display-rewind","icon-display-sdks","icon-display-sdks-col","icon-display-send-received-messages","icon-display-servers","icon-display-shopping-cart","icon-display-sla","icon-display-soc2-type2","icon-display-soc2-type2-mono","icon-display-something-else","icon-display-something-else-mono","icon-display-subscription-filters","icon-display-support-chat-mono","icon-display-system-metadata","icon-display-tech-account-comms","icon-display-tutorials-demos-col","icon-display-ui","icon-display-ui-mono","icon-display-virtual-events","icon-display-virtual-events-col"];
|
|
2
2
|
//# sourceMappingURL=display-icons.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/core/Icon/computed-icons/display-icons.ts"],"sourcesContent":["// AUTOGENERATED BY generate-icons - DO NOT EDIT\n\nexport const displayIcons = [\n \"icon-display-48hrs\",\n \"icon-display-ably-channels\",\n \"icon-display-about-ably-col\",\n \"icon-display-api\",\n \"icon-display-api-keys\",\n \"icon-display-architectural-guidance\",\n \"icon-display-asset-tracking-col\",\n \"icon-display-authentication\",\n \"icon-display-avatar-stack\",\n \"icon-display-browser\",\n \"icon-display-calendar\",\n \"icon-display-call-mobile\",\n \"icon-display-careers-col\",\n \"icon-display-case-studies-col\",\n \"icon-display-chat-col\",\n \"icon-display-chat-mono\",\n \"icon-display-chat-stack\",\n \"icon-display-chat-stack-col\",\n \"icon-display-cloud-servers\",\n \"icon-display-cloud-servers-mono\",\n \"icon-display-compare-tech-col\",\n \"icon-display-connection-state-recovery\",\n \"icon-display-consumer-groups\",\n \"icon-display-custom\",\n \"icon-display-custom-cname\",\n \"icon-display-customers-col\",\n \"icon-display-data-broadcast-col\",\n \"icon-display-data-broadcast-mono\",\n \"icon-display-data-integrity\",\n \"icon-display-data-synchronization-col\",\n \"icon-display-database-connector\",\n \"icon-display-dedicated-cluster\",\n \"icon-display-deltas\",\n \"icon-display-docs-col\",\n \"icon-display-documentation\",\n \"icon-display-dynamic-channel-groups\",\n \"icon-display-edge-network\",\n \"icon-display-elasticity\",\n \"icon-display-ephemeral-messages\",\n \"icon-display-equalisers-mono\",\n \"icon-display-events-col\",\n \"icon-display-exactly-once-delivery\",\n \"icon-display-examples-col\",\n \"icon-display-fan-out\",\n \"icon-display-firehose\",\n \"icon-display-gdpr\",\n \"icon-display-general-comms\",\n \"icon-display-granular-permissions\",\n \"icon-display-hipaa\",\n \"icon-display-hipaa-mono\",\n \"icon-display-history\",\n \"icon-display-integrations\",\n \"icon-display-integrations-col\",\n \"icon-display-it-support-access\",\n \"icon-display-it-support-helpdesk\",\n \"icon-display-kafka-at-the-edge-col\",\n \"icon-display-laptop\",\n \"icon-display-last-seen\",\n \"icon-display-lightbulb-col\",\n \"icon-display-live-chat\",\n \"icon-display-live-updates\",\n \"icon-display-live-updates-results-metrics-col\",\n \"icon-display-map-pin\",\n \"icon-display-message\",\n \"icon-display-message-annotations\",\n \"icon-display-message-batching\",\n \"icon-display-message-persistence\",\n \"icon-display-message-queues\",\n \"icon-display-multi-user-spaces\",\n \"icon-display-multi-user-spaces-col\",\n \"icon-display-observe-analytics\",\n \"icon-display-padlock-closed\",\n \"icon-display-platform\",\n \"icon-display-play\",\n \"icon-display-premium-support\",\n \"icon-display-privacy-shield-framework\",\n \"icon-display-private-link\",\n \"icon-display-push-notifications\",\n \"icon-display-push-notifications-col\",\n \"icon-display-push-notifications-mono\",\n \"icon-display-quickstart-guides-col\",\n \"icon-display-reactions\",\n \"icon-display-read-receipts\",\n \"icon-display-resources-col\",\n \"icon-display-rewind\",\n \"icon-display-sdks\",\n \"icon-display-sdks-col\",\n \"icon-display-send-received-messages\",\n \"icon-display-servers\",\n \"icon-display-shopping-cart\",\n \"icon-display-sla\",\n \"icon-display-soc2-type2\",\n \"icon-display-soc2-type2-mono\",\n \"icon-display-something-else\",\n \"icon-display-something-else-mono\",\n \"icon-display-subscription-filters\",\n \"icon-display-support-chat-mono\",\n \"icon-display-system-metadata\",\n \"icon-display-tech-account-comms\",\n \"icon-display-tutorials-demos-col\",\n \"icon-display-ui\",\n \"icon-display-ui-mono\",\n \"icon-display-virtual-events\",\n \"icon-display-virtual-events-col\"\n] as const;"],"names":["displayIcons"],"mappings":"AAEA,OAAO,MAAMA,aAAe,CAC1B,qBACA,6BACA,8BACA,mBACA,wBACA,sCACA,kCACA,8BACA,4BACA,uBACA,wBACA,2BACA,2BACA,gCACA,wBACA,yBACA,0BACA,8BACA,6BACA,kCACA,gCACA,yCACA,+BACA,sBACA,4BACA,6BACA,kCACA,mCACA,8BACA,wCACA,kCACA,iCACA,sBACA,wBACA,6BACA,sCACA,4BACA,0BACA,kCACA,+BACA,0BACA,qCACA,4BACA,uBACA,wBACA,oBACA,6BACA,oCACA,qBACA,0BACA,uBACA,4BACA,gCACA,iCACA,mCACA,qCACA,sBACA,yBACA,6BACA,yBACA,4BACA,gDACA,uBACA,uBACA,mCACA,gCACA,mCACA,8BACA,iCACA,qCACA,iCACA,8BACA,wBACA,oBACA,+BACA,wCACA,4BACA,kCACA,sCACA,uCACA,qCACA,yBACA,6BACA,6BACA,sBACA,oBACA,wBACA,sCACA,uBACA,6BACA,mBACA,0BACA,+BACA,8BACA,mCACA,oCACA,iCACA,+BACA,kCACA,mCACA,kBACA,uBACA,8BACA,kCACD,AAAU"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/core/Icon/computed-icons/display-icons.ts"],"sourcesContent":["// AUTOGENERATED BY generate-icons - DO NOT EDIT\n\nexport const displayIcons = [\n \"icon-display-48hrs\",\n \"icon-display-ably-channels\",\n \"icon-display-about-ably-col\",\n \"icon-display-api\",\n \"icon-display-api-keys\",\n \"icon-display-architectural-guidance\",\n \"icon-display-asset-tracking-col\",\n \"icon-display-authentication\",\n \"icon-display-avatar-stack\",\n \"icon-display-browser\",\n \"icon-display-calendar\",\n \"icon-display-call-mobile\",\n \"icon-display-careers-col\",\n \"icon-display-case-studies-col\",\n \"icon-display-chat-col\",\n \"icon-display-chat-mono\",\n \"icon-display-chat-stack\",\n \"icon-display-chat-stack-col\",\n \"icon-display-cloud-servers\",\n \"icon-display-cloud-servers-mono\",\n \"icon-display-compare-tech-col\",\n \"icon-display-connection-state-recovery\",\n \"icon-display-consumer-groups\",\n \"icon-display-custom\",\n \"icon-display-custom-cname\",\n \"icon-display-customers-col\",\n \"icon-display-data-broadcast-col\",\n \"icon-display-data-broadcast-mono\",\n \"icon-display-data-integrity\",\n \"icon-display-data-synchronization-col\",\n \"icon-display-database-connector\",\n \"icon-display-dedicated-cluster\",\n \"icon-display-deltas\",\n \"icon-display-docs-col\",\n \"icon-display-documentation\",\n \"icon-display-dynamic-channel-groups\",\n \"icon-display-edge-network\",\n \"icon-display-elasticity\",\n \"icon-display-ephemeral-messages\",\n \"icon-display-ephemeral-messages-dark-col\",\n \"icon-display-equalisers-mono\",\n \"icon-display-events-col\",\n \"icon-display-exactly-once-delivery\",\n \"icon-display-examples-col\",\n \"icon-display-fan-out\",\n \"icon-display-firehose\",\n \"icon-display-gdpr\",\n \"icon-display-general-comms\",\n \"icon-display-granular-permissions\",\n \"icon-display-hipaa\",\n \"icon-display-hipaa-mono\",\n \"icon-display-history\",\n \"icon-display-integrations\",\n \"icon-display-integrations-col\",\n \"icon-display-it-support-access\",\n \"icon-display-it-support-helpdesk\",\n \"icon-display-kafka-at-the-edge-col\",\n \"icon-display-laptop\",\n \"icon-display-last-seen\",\n \"icon-display-lightbulb-col\",\n \"icon-display-live-chat\",\n \"icon-display-live-updates\",\n \"icon-display-live-updates-results-metrics-col\",\n \"icon-display-map-pin\",\n \"icon-display-message\",\n \"icon-display-message-annotations\",\n \"icon-display-message-annotations-dark-col\",\n \"icon-display-message-batching\",\n \"icon-display-message-persistence\",\n \"icon-display-message-queues\",\n \"icon-display-multi-user-spaces\",\n \"icon-display-multi-user-spaces-col\",\n \"icon-display-observe-analytics\",\n \"icon-display-padlock-closed\",\n \"icon-display-platform\",\n \"icon-display-play\",\n \"icon-display-premium-support\",\n \"icon-display-privacy-shield-framework\",\n \"icon-display-private-link\",\n \"icon-display-push-notifications\",\n \"icon-display-push-notifications-col\",\n \"icon-display-push-notifications-mono\",\n \"icon-display-quickstart-guides-col\",\n \"icon-display-reactions\",\n \"icon-display-read-receipts\",\n \"icon-display-resources-col\",\n \"icon-display-rewind\",\n \"icon-display-sdks\",\n \"icon-display-sdks-col\",\n \"icon-display-send-received-messages\",\n \"icon-display-servers\",\n \"icon-display-shopping-cart\",\n \"icon-display-sla\",\n \"icon-display-soc2-type2\",\n \"icon-display-soc2-type2-mono\",\n \"icon-display-something-else\",\n \"icon-display-something-else-mono\",\n \"icon-display-subscription-filters\",\n \"icon-display-support-chat-mono\",\n \"icon-display-system-metadata\",\n \"icon-display-tech-account-comms\",\n \"icon-display-tutorials-demos-col\",\n \"icon-display-ui\",\n \"icon-display-ui-mono\",\n \"icon-display-virtual-events\",\n \"icon-display-virtual-events-col\"\n] as const;"],"names":["displayIcons"],"mappings":"AAEA,OAAO,MAAMA,aAAe,CAC1B,qBACA,6BACA,8BACA,mBACA,wBACA,sCACA,kCACA,8BACA,4BACA,uBACA,wBACA,2BACA,2BACA,gCACA,wBACA,yBACA,0BACA,8BACA,6BACA,kCACA,gCACA,yCACA,+BACA,sBACA,4BACA,6BACA,kCACA,mCACA,8BACA,wCACA,kCACA,iCACA,sBACA,wBACA,6BACA,sCACA,4BACA,0BACA,kCACA,2CACA,+BACA,0BACA,qCACA,4BACA,uBACA,wBACA,oBACA,6BACA,oCACA,qBACA,0BACA,uBACA,4BACA,gCACA,iCACA,mCACA,qCACA,sBACA,yBACA,6BACA,yBACA,4BACA,gDACA,uBACA,uBACA,mCACA,4CACA,gCACA,mCACA,8BACA,iCACA,qCACA,iCACA,8BACA,wBACA,oBACA,+BACA,wCACA,4BACA,kCACA,sCACA,uCACA,qCACA,yBACA,6BACA,6BACA,sBACA,oBACA,wBACA,sCACA,uBACA,6BACA,mBACA,0BACA,+BACA,8BACA,mCACA,oCACA,iCACA,+BACA,kCACA,mCACA,kBACA,uBACA,8BACA,kCACD,AAAU"}
|
package/core/Notice.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import React,{useEffect,useRef,useState}from"react";import DOMPurify from"dompurify";import Icon from"./Icon";import cn from"./utils/cn.js";import NoticeScripts from"./Notice/component.js";import useRailsUjsLinks from"./hooks/use-rails-ujs-hooks";const defaultTextColor="text-neutral-1300 dark:text-neutral-000";const contentWrapperClasses="w-full pr-2 ui-text-p4 self-center";const
|
|
1
|
+
import React,{useEffect,useRef,useState}from"react";import DOMPurify from"dompurify";import Icon from"./Icon";import cn from"./utils/cn.js";import NoticeScripts from"./Notice/component.js";import useRailsUjsLinks from"./hooks/use-rails-ujs-hooks";const defaultTextColor="text-neutral-1300 dark:text-neutral-000";const contentWrapperClasses="w-full pr-2 ui-text-p4 self-center";const Notice=({buttonLink,buttonLabel,bodyText,title,config,closeBtn,bgColor="bg-orange-100 dark:bg-orange-1100",textColor=defaultTextColor,onClose})=>{const contentRef=useRef(null);const[isClosing,setIsClosing]=useState(false);useRailsUjsLinks(contentRef);useEffect(()=>{const cleanup=NoticeScripts({bannerContainer:document.querySelector('[data-id="ui-notice"]'),cookieId:config?.cookieId,noticeId:config?.noticeId,options:{collapse:config?.options?.collapse||false}});return cleanup},[config?.cookieId,config?.noticeId,config?.options?.collapse]);const safeContent=DOMPurify.sanitize(bodyText??"",{ALLOWED_TAGS:["a"],ALLOWED_ATTR:["href","data-method"],ALLOWED_URI_REGEXP:/^\/[^/]/});const isSafeButtonLink=typeof buttonLink==="string"&&(/^\/(?!\/)/.test(buttonLink)||/^https?:\/\//.test(buttonLink));return React.createElement("div",{className:cn("ui-announcement relative z-[60]",isClosing?"ui-announcement-hidden max-h-0 -translate-y-full opacity-0 overflow-hidden":"ui-announcement-visible",bgColor,textColor),"data-id":"ui-notice"},React.createElement("div",{className:"ui-grid-px py-4 max-w-screen-xl mx-auto flex items-start"},React.createElement("div",{className:cn(contentWrapperClasses,textColor)},React.createElement("strong",{className:"font-bold whitespace-nowrap pr-1"},title),React.createElement("span",{ref:contentRef,className:"pr-1",dangerouslySetInnerHTML:{__html:safeContent}}),buttonLabel&&(isSafeButtonLink?React.createElement("a",{href:buttonLink,className:"focus-base transition-colors cursor-pointer whitespace-nowrap text-gui-blue-default-light dark:text-gui-blue-default-dark"},buttonLabel):React.createElement("span",{className:"focus-base transition-colors cursor-pointer whitespace-nowrap text-gui-blue-default-light dark:text-gui-blue-default-dark"},buttonLabel))),closeBtn&&React.createElement("button",{type:"button",className:"ml-auto h-5 w-5 border-none bg-none self-baseline outline-none focus:outline-none focus:ring-0 focus:border-transparent",onClick:()=>{setIsClosing(true);setTimeout(()=>{document.dispatchEvent(new CustomEvent("notice-closed"));onClose?.()},300)}},React.createElement(Icon,{name:"icon-gui-x-mark-outline",size:"1.25rem",color:textColor}))))};export default Notice;
|
|
2
2
|
//# sourceMappingURL=Notice.js.map
|
package/core/Notice.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/Notice.tsx"],"sourcesContent":["import React, {
|
|
1
|
+
{"version":3,"sources":["../../src/core/Notice.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\";\nimport DOMPurify from \"dompurify\";\n\nimport { ColorClass, ColorThemeSet } from \"./styles/colors/types\";\nimport Icon from \"./Icon\";\nimport cn from \"./utils/cn.js\";\nimport NoticeScripts from \"./Notice/component.js\";\nimport useRailsUjsLinks from \"./hooks/use-rails-ujs-hooks\";\n\n// TODO(jamiehenson):\n// This type is a bit messed up currently due to the NoticeScripts import being interpreted as NoticeProps.\n// Plan is to TS-ify the JS assets too, so this can be rectified then. The NoticeScripts-oriented props are\n// the ones after the line break.\nexport type NoticeProps = {\n buttonLink?: string;\n buttonLabel?: string;\n bodyText?: string;\n title?: string;\n closeBtn?: boolean;\n config?: {\n options: {\n collapse: boolean;\n };\n noticeId: string | number;\n cookieId: string;\n };\n bgColor?: string;\n textColor?: ColorClass | ColorThemeSet;\n onClose?: () => void;\n\n bannerContainer?: Element | null;\n cookieId?: string;\n noticeId?: string;\n options?: { collapse: boolean };\n};\n\nconst defaultTextColor = \"text-neutral-1300 dark:text-neutral-000\";\n\nconst contentWrapperClasses = \"w-full pr-2 ui-text-p4 self-center\";\n\nconst Notice = ({\n buttonLink,\n buttonLabel,\n bodyText,\n title,\n config,\n closeBtn,\n bgColor = \"bg-orange-100 dark:bg-orange-1100\",\n textColor = defaultTextColor,\n onClose,\n}: NoticeProps) => {\n const contentRef = useRef<HTMLSpanElement>(null);\n const [isClosing, setIsClosing] = useState(false);\n useRailsUjsLinks(contentRef);\n\n useEffect(() => {\n const cleanup = NoticeScripts({\n bannerContainer: document.querySelector('[data-id=\"ui-notice\"]'),\n cookieId: config?.cookieId,\n noticeId: config?.noticeId,\n options: {\n collapse: config?.options?.collapse || false,\n },\n });\n\n return cleanup;\n }, [config?.cookieId, config?.noticeId, config?.options?.collapse]);\n\n const safeContent = DOMPurify.sanitize(bodyText ?? \"\", {\n ALLOWED_TAGS: [\"a\"],\n ALLOWED_ATTR: [\"href\", \"data-method\"],\n ALLOWED_URI_REGEXP: /^\\/[^/]/,\n });\n\n const isSafeButtonLink =\n typeof buttonLink === \"string\" &&\n (/^\\/(?!\\/)/.test(buttonLink) || /^https?:\\/\\//.test(buttonLink));\n\n // have to add the style classes here as src/core/Notice/component.css is not being properly imported or distributed when ably-ui is used as a package.\n return (\n <div\n className={cn(\n \"ui-announcement relative z-[60]\",\n isClosing\n ? \"ui-announcement-hidden max-h-0 -translate-y-full opacity-0 overflow-hidden\"\n : \"ui-announcement-visible\",\n bgColor,\n textColor,\n )}\n data-id=\"ui-notice\"\n >\n <div className=\"ui-grid-px py-4 max-w-screen-xl mx-auto flex items-start\">\n <div className={cn(contentWrapperClasses, textColor)}>\n <strong className=\"font-bold whitespace-nowrap pr-1\">{title}</strong>\n <span\n ref={contentRef}\n className=\"pr-1\"\n dangerouslySetInnerHTML={{\n __html: safeContent,\n }}\n ></span>\n {buttonLabel &&\n (isSafeButtonLink ? (\n <a\n href={buttonLink}\n className=\"focus-base transition-colors cursor-pointer whitespace-nowrap text-gui-blue-default-light dark:text-gui-blue-default-dark\"\n >\n {buttonLabel}\n </a>\n ) : (\n <span className=\"focus-base transition-colors cursor-pointer whitespace-nowrap text-gui-blue-default-light dark:text-gui-blue-default-dark\">\n {buttonLabel}\n </span>\n ))}\n </div>\n\n {closeBtn && (\n <button\n type=\"button\"\n className=\"ml-auto h-5 w-5 border-none bg-none self-baseline outline-none focus:outline-none focus:ring-0 focus:border-transparent\"\n onClick={() => {\n setIsClosing(true);\n setTimeout(() => {\n document.dispatchEvent(new CustomEvent(\"notice-closed\"));\n onClose?.();\n }, 300);\n }}\n >\n <Icon\n name=\"icon-gui-x-mark-outline\"\n size=\"1.25rem\"\n color={textColor}\n />\n </button>\n )}\n </div>\n </div>\n );\n};\n\nexport default Notice;\n"],"names":["React","useEffect","useRef","useState","DOMPurify","Icon","cn","NoticeScripts","useRailsUjsLinks","defaultTextColor","contentWrapperClasses","Notice","buttonLink","buttonLabel","bodyText","title","config","closeBtn","bgColor","textColor","onClose","contentRef","isClosing","setIsClosing","cleanup","bannerContainer","document","querySelector","cookieId","noticeId","options","collapse","safeContent","sanitize","ALLOWED_TAGS","ALLOWED_ATTR","ALLOWED_URI_REGEXP","isSafeButtonLink","test","div","className","data-id","strong","span","ref","dangerouslySetInnerHTML","__html","a","href","button","type","onClick","setTimeout","dispatchEvent","CustomEvent","name","size","color"],"mappings":"AAAA,OAAOA,OAASC,SAAS,CAAEC,MAAM,CAAEC,QAAQ,KAAQ,OAAQ,AAC3D,QAAOC,cAAe,WAAY,AAGlC,QAAOC,SAAU,QAAS,AAC1B,QAAOC,OAAQ,eAAgB,AAC/B,QAAOC,kBAAmB,uBAAwB,AAClD,QAAOC,qBAAsB,6BAA8B,CA6B3D,MAAMC,iBAAmB,0CAEzB,MAAMC,sBAAwB,qCAE9B,MAAMC,OAAS,CAAC,CACdC,UAAU,CACVC,WAAW,CACXC,QAAQ,CACRC,KAAK,CACLC,MAAM,CACNC,QAAQ,CACRC,QAAU,mCAAmC,CAC7CC,UAAYV,gBAAgB,CAC5BW,OAAO,CACK,IACZ,MAAMC,WAAanB,OAAwB,MAC3C,KAAM,CAACoB,UAAWC,aAAa,CAAGpB,SAAS,OAC3CK,iBAAiBa,YAEjBpB,UAAU,KACR,MAAMuB,QAAUjB,cAAc,CAC5BkB,gBAAiBC,SAASC,aAAa,CAAC,yBACxCC,SAAUZ,QAAQY,SAClBC,SAAUb,QAAQa,SAClBC,QAAS,CACPC,SAAUf,QAAQc,SAASC,UAAY,KACzC,CACF,GAEA,OAAOP,OACT,EAAG,CAACR,QAAQY,SAAUZ,QAAQa,SAAUb,QAAQc,SAASC,SAAS,EAElE,MAAMC,YAAc5B,UAAU6B,QAAQ,CAACnB,UAAY,GAAI,CACrDoB,aAAc,CAAC,IAAI,CACnBC,aAAc,CAAC,OAAQ,cAAc,CACrCC,mBAAoB,SACtB,GAEA,MAAMC,iBACJ,OAAOzB,aAAe,UACrB,CAAA,YAAY0B,IAAI,CAAC1B,aAAe,eAAe0B,IAAI,CAAC1B,WAAU,EAGjE,OACE,oBAAC2B,OACCC,UAAWlC,GACT,kCACAgB,UACI,6EACA,0BACJJ,QACAC,WAEFsB,UAAQ,aAER,oBAACF,OAAIC,UAAU,4DACb,oBAACD,OAAIC,UAAWlC,GAAGI,sBAAuBS,YACxC,oBAACuB,UAAOF,UAAU,oCAAoCzB,OACtD,oBAAC4B,QACCC,IAAKvB,WACLmB,UAAU,OACVK,wBAAyB,CACvBC,OAAQd,WACV,IAEDnB,aACEwB,CAAAA,iBACC,oBAACU,KACCC,KAAMpC,WACN4B,UAAU,6HAET3B,aAGH,oBAAC8B,QAAKH,UAAU,6HACb3B,YAEL,GAGHI,UACC,oBAACgC,UACCC,KAAK,SACLV,UAAU,0HACVW,QAAS,KACP5B,aAAa,MACb6B,WAAW,KACT1B,SAAS2B,aAAa,CAAC,IAAIC,YAAY,kBACvClC,WACF,EAAG,IACL,GAEA,oBAACf,MACCkD,KAAK,0BACLC,KAAK,UACLC,MAAOtC,cAOrB,CAEA,gBAAeR,MAAO"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
<svg width="44" height="44" viewBox="0 0 44 44" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M0.75 21.75C0.75 33.348 10.152 42.75 21.75 42.75C33.348 42.75 42.75 33.348 42.75 21.75C42.75 10.152 33.348 0.75 21.75 0.75" stroke="#FF5416" stroke-width="1.5" stroke-linecap="round" stroke-dasharray="1.5 5"/>
|
|
3
|
+
<rect x="10.75" y="13.75" width="22" height="16" rx="1.86335" stroke="#C6CED9" stroke-width="1.60714"/>
|
|
4
|
+
<path d="M11.75 14.75L22.0601 21.75L31.75 14.75" stroke="#C6CED9" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
5
|
+
<path d="M0.75 21.75C0.75 10.152 10.152 0.75 21.75 0.75" stroke="#FF5416" stroke-width="1.5" stroke-linecap="round" stroke-dasharray="1.5 5"/>
|
|
6
|
+
</svg>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<svg width="45" height="48" viewBox="0 0 45 48" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M16.1372 42.3263C15.9301 42.685 15.4714 42.8079 15.1127 42.6008L15.1026 42.595C14.7439 42.3879 14.621 41.9292 14.8281 41.5705C15.0352 41.2118 15.4939 41.0889 15.8526 41.296L15.8627 41.3018C16.2214 41.5089 16.3443 41.9676 16.1372 42.3263ZM28.8632 42.3263C28.6561 41.9676 28.779 41.5089 29.1377 41.3018L29.1477 41.296C29.5064 41.0889 29.9651 41.2118 30.1722 41.5705C30.3793 41.9292 30.2564 42.3879 29.8977 42.595L29.8877 42.6008C29.529 42.8079 29.0703 42.685 28.8632 42.3263ZM33.8807 39.4294C33.6736 39.0707 33.7965 38.612 34.1552 38.4049L34.1652 38.3991C34.5239 38.192 34.9826 38.3149 35.1897 38.6736C35.3968 39.0324 35.2739 39.4911 34.9152 39.6982L34.9052 39.7039C34.5465 39.911 34.0878 39.7881 33.8807 39.4294ZM11.1197 39.4294C10.9126 39.7881 10.4539 39.911 10.0951 39.7039L10.0851 39.6982C9.72641 39.4911 9.6035 39.0324 9.81061 38.6736C10.0177 38.3149 10.4764 38.192 10.8351 38.3991L10.8451 38.4049C11.2039 38.612 11.3268 39.0707 11.1197 39.4294ZM41.5527 27.6526C41.1385 27.6526 40.8027 27.3168 40.8027 26.9026L40.8027 26.8911C40.8027 26.4768 41.1385 26.1411 41.5527 26.1411C41.9669 26.1411 42.3027 26.4768 42.3027 26.8911L42.3027 26.9026C42.3027 27.3168 41.9669 27.6526 41.5527 27.6526ZM3.44762 27.6526C3.0334 27.6526 2.69762 27.3168 2.69762 26.9026L2.69762 26.891C2.69762 26.4768 3.0334 26.141 3.44762 26.141C3.86183 26.141 4.19762 26.4768 4.19762 26.891L4.19762 26.9026C4.19762 27.3168 3.86183 27.6526 3.44762 27.6526ZM41.5527 21.8589C41.1385 21.8589 40.8027 21.5231 40.8027 21.1089L40.8027 21.0973C40.8027 20.6831 41.1385 20.3473 41.5527 20.3473C41.9669 20.3473 42.3027 20.6831 42.3027 21.0973L42.3027 21.1089C42.3027 21.5231 41.9669 21.8589 41.5527 21.8589ZM3.44762 21.8589C3.0334 21.8589 2.69762 21.5231 2.69762 21.1089L2.69762 21.0973C2.69762 20.6831 3.0334 20.3473 3.44762 20.3473C3.86183 20.3473 4.19762 20.6831 4.19762 21.0973L4.19762 21.1089C4.19762 21.5231 3.86183 21.8589 3.44762 21.8589ZM35.1897 9.32629C34.9826 9.68501 34.5239 9.80791 34.1652 9.60081L34.1552 9.59503C33.7965 9.38792 33.6736 8.92923 33.8807 8.57051C34.0878 8.21179 34.5465 8.08888 34.9052 8.29599L34.9152 8.30177C35.2739 8.50888 35.3969 8.96757 35.1897 9.32629ZM9.81061 9.32629C9.60351 8.96757 9.72641 8.50887 10.0851 8.30177L10.0951 8.29599C10.4539 8.08888 10.9126 8.21179 11.1197 8.5705C11.3268 8.92922 11.2039 9.38792 10.8451 9.59503L10.8351 9.6008C10.4764 9.80791 10.0177 9.68501 9.81061 9.32629ZM30.1722 6.42942C29.9651 6.78814 29.5064 6.91105 29.1477 6.70394L29.1377 6.69816C28.779 6.49105 28.6561 6.03236 28.8632 5.67364C29.0703 5.31492 29.529 5.19202 29.8877 5.39912L29.8977 5.4049C30.2564 5.61201 30.3793 6.0707 30.1722 6.42942ZM14.8281 6.42942C14.621 6.0707 14.7439 5.61201 15.1027 5.4049L15.1127 5.39912C15.4714 5.19201 15.9301 5.31492 16.1372 5.67364C16.3443 6.03236 16.2214 6.49105 15.8627 6.69816L15.8527 6.70394C15.4939 6.91105 15.0352 6.78814 14.8281 6.42942Z" fill="#C6CED9"/>
|
|
3
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M22.5 8C24.7091 8 26.5 6.20914 26.5 4C26.5 1.79086 24.7091 0 22.5 0C20.2909 0 18.5 1.79086 18.5 4C18.5 6.20914 20.2909 8 22.5 8Z" fill="#FF5416"/>
|
|
4
|
+
<path d="M40.5 38C42.7091 38 44.5 36.2091 44.5 34C44.5 31.7909 42.7091 30 40.5 30C38.2909 30 36.5 31.7909 36.5 34C36.5 36.2091 38.2909 38 40.5 38Z" fill="#FF5416"/>
|
|
5
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M1.90967 10C1.35738 10 0.909668 10.4477 0.909668 11V17C0.909668 17.5523 1.35738 18 1.90967 18H7.90967C8.46195 18 8.90967 17.5523 8.90967 17V11C8.90967 10.4477 8.46195 10 7.90967 10H1.90967Z" fill="#FF5416"/>
|
|
6
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M19.5 40C18.9477 40 18.5 40.4477 18.5 41V47C18.5 47.5523 18.9477 48 19.5 48H25.5C26.0523 48 26.5 47.5523 26.5 47V41C26.5 40.4477 26.0523 40 25.5 40H19.5Z" fill="#FF5416"/>
|
|
7
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M41.366 10.5C40.9811 9.83333 40.0189 9.83333 39.634 10.5L36.1699 16.5C35.785 17.1667 36.2661 18 37.0359 18H43.9641C44.7339 18 45.215 17.1667 44.8301 16.5L41.366 10.5Z" fill="#FF5416"/>
|
|
8
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.33162 30.5C4.94672 29.8333 3.98447 29.8333 3.59957 30.5L0.135467 36.5C-0.249434 37.1667 0.231691 38 1.00149 38H7.92969C8.69949 38 9.18062 37.1667 8.79572 36.5L5.33162 30.5Z" fill="#FF5416"/>
|
|
9
|
+
<rect x="12.6875" y="17" width="20.125" height="14" rx="1.75" stroke="#C6CED9" stroke-width="1.5"/>
|
|
10
|
+
<path d="M13.3437 17.6562L23.0417 24.4375L32.1562 17.6562" stroke="#C6CED9" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
11
|
+
</svg>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
class Store{getState(){if(this.isDispatching){throw new Error("You may not call store.getState() while the reducer is executing.")}return this.state}dispatch(action){if(this.isDispatching){throw new Error("Reducers may not dispatch actions.")}if(typeof action!=="object"||action===null){throw new Error("Actions must be plain objects. Use custom middleware for async actions.")}if(typeof action.type==="undefined"){throw new Error('Actions may not have an undefined "type" property. You may have misspelled an action type string constant.')}try{this.isDispatching=true;const nextState={};Object.keys(this.reducers).forEach(key=>{const reducer=this.reducers[key];const previousStateForKey=this.state[key];const nextStateForKey=reducer(previousStateForKey,action);nextState[key]=nextStateForKey});this.state=nextState}finally{this.isDispatching=false}const listeners=this.listeners.slice();for(let i=0;i<listeners.length;i++){const listener=listeners[i];listener()}return action}subscribe(listener){if(typeof listener!=="function"){throw new Error("Expected the listener to be a function.")}if(this.isDispatching){throw new Error("You may not call store.subscribe() while the reducer is executing.")}let isSubscribed=true;this.listeners.push(listener);return(function unsubscribe(){if(!isSubscribed){return}if(this.isDispatching){throw new Error("You may not unsubscribe from a store listener while the reducer is executing.")}isSubscribed=false;const index=this.listeners.indexOf(listener);this.listeners.splice(index,1)}).bind(this)}constructor(reducers,initialState={}){this.state=initialState;this.reducers=reducers;this.listeners=[];this.isDispatching=false}}export const attachStoreToWindow=store=>{window.AblyUi=window.AblyUi||{};window.AblyUi.RemoteDataStore=store};export const getRemoteDataStore=()=>{if(!window.AblyUi.RemoteDataStore){throw new Error("Remote store was called before one was created")}return window.AblyUi.RemoteDataStore};export const connectState=(selector,setState)=>{const store=getRemoteDataStore();let cachedOldState=selector(store);store.subscribe(()=>{const newState=selector(store);if(newState===cachedOldState){return}cachedOldState=newState;setState(newState)})};export const createRemoteDataStore=reducers=>{const initialState={};Object.keys(reducers).forEach(key=>{const reducer=reducers[key];initialState[key]=reducer(undefined,{type:"@@INIT"})});return new Store(reducers,initialState)};
|
|
2
2
|
//# sourceMappingURL=remote-data-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/remote-data-store.js"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../src/core/remote-data-store.js"],"sourcesContent":["// Custom Store class to replace Redux\nclass Store {\n constructor(reducers, initialState = {}) {\n this.state = initialState;\n this.reducers = reducers;\n this.listeners = [];\n this.isDispatching = false;\n }\n\n getState() {\n if (this.isDispatching) {\n throw new Error(\n \"You may not call store.getState() while the reducer is executing.\",\n );\n }\n return this.state;\n }\n\n dispatch(action) {\n if (this.isDispatching) {\n throw new Error(\"Reducers may not dispatch actions.\");\n }\n\n if (typeof action !== \"object\" || action === null) {\n throw new Error(\n \"Actions must be plain objects. Use custom middleware for async actions.\",\n );\n }\n\n if (typeof action.type === \"undefined\") {\n throw new Error(\n 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.',\n );\n }\n\n try {\n this.isDispatching = true;\n const nextState = {};\n\n // Apply each reducer to its corresponding state slice\n Object.keys(this.reducers).forEach((key) => {\n const reducer = this.reducers[key];\n const previousStateForKey = this.state[key];\n const nextStateForKey = reducer(previousStateForKey, action);\n nextState[key] = nextStateForKey;\n });\n\n this.state = nextState;\n } finally {\n this.isDispatching = false;\n }\n\n // Notify all listeners\n const listeners = this.listeners.slice();\n for (let i = 0; i < listeners.length; i++) {\n const listener = listeners[i];\n listener();\n }\n\n return action;\n }\n\n subscribe(listener) {\n if (typeof listener !== \"function\") {\n throw new Error(\"Expected the listener to be a function.\");\n }\n\n if (this.isDispatching) {\n throw new Error(\n \"You may not call store.subscribe() while the reducer is executing.\",\n );\n }\n\n let isSubscribed = true;\n\n this.listeners.push(listener);\n\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (this.isDispatching) {\n throw new Error(\n \"You may not unsubscribe from a store listener while the reducer is executing.\",\n );\n }\n\n isSubscribed = false;\n const index = this.listeners.indexOf(listener);\n this.listeners.splice(index, 1);\n }.bind(this);\n }\n}\n\nexport const attachStoreToWindow = (store) => {\n window.AblyUi = window.AblyUi || {};\n window.AblyUi.RemoteDataStore = store;\n};\n\nexport const getRemoteDataStore = () => {\n if (!window.AblyUi.RemoteDataStore) {\n throw new Error(\"Remote store was called before one was created\");\n }\n\n return window.AblyUi.RemoteDataStore;\n};\n\nexport const connectState = (selector, setState) => {\n const store = getRemoteDataStore();\n let cachedOldState = selector(store);\n\n store.subscribe(() => {\n const newState = selector(store);\n\n // Do nothing, state is the same\n if (newState === cachedOldState) {\n return;\n }\n\n cachedOldState = newState;\n setState(newState);\n });\n};\n\nexport const createRemoteDataStore = (reducers) => {\n // Initialize state by calling each reducer with undefined state\n const initialState = {};\n Object.keys(reducers).forEach((key) => {\n const reducer = reducers[key];\n initialState[key] = reducer(undefined, { type: \"@@INIT\" });\n });\n\n return new Store(reducers, initialState);\n};\n"],"names":["Store","getState","isDispatching","Error","state","dispatch","action","type","nextState","Object","keys","reducers","forEach","key","reducer","previousStateForKey","nextStateForKey","listeners","slice","i","length","listener","subscribe","isSubscribed","push","unsubscribe","index","indexOf","splice","bind","initialState","attachStoreToWindow","store","window","AblyUi","RemoteDataStore","getRemoteDataStore","connectState","selector","setState","cachedOldState","newState","createRemoteDataStore","undefined"],"mappings":"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"}
|