@clubmed/usg-chat-ui 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"PromptComposer.js","sources":["../../../lib/organisms/chat/PromptComposer.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n PromptInput,\n PromptInputBody,\n PromptInputFooter,\n PromptInputSubmit,\n PromptInputTextarea,\n} from \"@clubmed/usg-chat-ui/molecules/AiElements/PromptInput\";\nimport type { PromptInputMessage } from \"@clubmed/usg-chat-ui/molecules/AiElements/PromptInput\";\nimport type { ChangeEvent } from \"react\";\n\ninterface PromptComposerProps {\n value: string;\n isLoading: boolean;\n onChange: (value: string) => void;\n onSubmit: (message: PromptInputMessage) => Promise<void> | void;\n}\n\nexport function PromptComposer({ value, isLoading, onChange, onSubmit }: PromptComposerProps) {\n const handleChange = (event: ChangeEvent<HTMLTextAreaElement>) => {\n onChange(event.target.value);\n };\n\n return (\n <div className=\"p-3 sm:p-4\">\n <PromptInput onSubmit={onSubmit}>\n <PromptInputBody>\n <PromptInputTextarea\n value={value}\n onChange={handleChange}\n placeholder=\"Décrivez votre besoin ou tapez /help pour l'aide...\"\n disabled={isLoading}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" && !e.shiftKey && !isLoading && value?.trim()) {\n e.preventDefault();\n onSubmit({ text: value });\n }\n }}\n />\n </PromptInputBody>\n <PromptInputFooter>\n <p className=\"text-xs text-muted-foreground hidden sm:block\">\n Commandes: /settings, /help, /clear •{\" \"}\n <kbd className=\"px-1.5 py-0.5 rounded bg-muted text-xs font-mono\">Enter</kbd> pour envoyer\n </p>\n <p className=\"text-xs text-muted-foreground sm:hidden\">\n <kbd className=\"px-1.5 py-0.5 rounded bg-muted text-xs font-mono\">Enter</kbd> pour envoyer\n </p>\n <div className=\"flex-1\" />\n <PromptInputSubmit disabled={isLoading || !value?.trim()} status={isLoading ? \"streaming\" : \"ready\"} />\n </PromptInputFooter>\n </PromptInput>\n </div>\n );\n}\n"],"names":["PromptComposer","value","isLoading","onChange","onSubmit","jsxs","PromptInput","jsx","PromptInputBody","PromptInputTextarea","event","e","PromptInputFooter","PromptInputSubmit"],"mappings":";;;AAmBO,SAASA,EAAe,EAAE,OAAAC,GAAO,WAAAC,GAAW,UAAAC,GAAU,UAAAC,KAAiC;AAK5F,2BACG,OAAA,EAAI,WAAU,cACb,UAAA,gBAAAC,EAACC,KAAY,UAAAF,GACX,UAAA;AAAA,IAAA,gBAAAG,EAACC,GAAA,EACC,UAAA,gBAAAD;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,OAAAR;AAAA,QACA,UAVW,CAACS,MAA4C;AAChE,UAAAP,EAASO,EAAM,OAAO,KAAK;AAAA,QAC7B;AAAA,QASU,aAAY;AAAA,QACZ,UAAUR;AAAA,QACV,WAAW,CAACS,MAAM;AAChB,UAAIA,EAAE,QAAQ,WAAW,CAACA,EAAE,YAAY,CAACT,MAAaD,KAAA,QAAAA,EAAO,YAC3DU,EAAE,eAAA,GACFP,EAAS,EAAE,MAAMH,GAAO;AAAA,QAE5B;AAAA,MAAA;AAAA,IAAA,GAEJ;AAAA,sBACCW,GAAA,EACC,UAAA;AAAA,MAAA,gBAAAP,EAAC,KAAA,EAAE,WAAU,iDAAgD,UAAA;AAAA,QAAA;AAAA,QACrB;AAAA,QACtC,gBAAAE,EAAC,OAAA,EAAI,WAAU,oDAAmD,UAAA,SAAK;AAAA,QAAM;AAAA,MAAA,GAC/E;AAAA,MACA,gBAAAF,EAAC,KAAA,EAAE,WAAU,2CACX,UAAA;AAAA,QAAA,gBAAAE,EAAC,OAAA,EAAI,WAAU,oDAAmD,UAAA,SAAK;AAAA,QAAM;AAAA,MAAA,GAC/E;AAAA,MACA,gBAAAA,EAAC,OAAA,EAAI,WAAU,SAAA,CAAS;AAAA,MACxB,gBAAAA,EAACM,GAAA,EAAkB,UAAUX,KAAa,EAACD,KAAA,QAAAA,EAAO,SAAQ,QAAQC,IAAY,cAAc,QAAA,CAAS;AAAA,IAAA,EAAA,CACvG;AAAA,EAAA,EAAA,CACF,EAAA,CACF;AAEJ;"}
1
+ {"version":3,"file":"PromptComposer.js","sources":["../../../lib/organisms/chat/PromptComposer.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n PromptInput,\n PromptInputBody,\n PromptInputFooter,\n PromptInputSubmit,\n PromptInputTextarea,\n} from \"@clubmed/usg-chat-ui/molecules/AiElements/PromptInput\";\nimport type { PromptInputMessage } from \"@clubmed/usg-chat-ui/molecules/AiElements/PromptInput\";\nimport type { ChangeEvent } from \"react\";\nimport {useChatLabels} from \"../../contexts/ChatLabelsContext\";\n\ninterface PromptComposerProps {\n value: string;\n isLoading: boolean;\n onChange: (value: string) => void;\n onSubmit: (message: PromptInputMessage) => Promise<void> | void;\n}\n\nexport function PromptComposer({ value, isLoading, onChange, onSubmit }: PromptComposerProps) {\n const {get} = useChatLabels();\n const promptPlaceholder = get(\n \"promptComposerPlaceholder\",\n \"Décrivez votre besoin ou tapez /help pour l'aide...\"\n );\n const handleChange = (event: ChangeEvent<HTMLTextAreaElement>) => {\n onChange(event.target.value);\n };\n\n return (\n <div className=\"p-3 sm:p-4\">\n <PromptInput onSubmit={onSubmit}>\n <PromptInputBody>\n <PromptInputTextarea\n value={value}\n onChange={handleChange}\n placeholder={promptPlaceholder}\n disabled={isLoading}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" && !e.shiftKey && !isLoading && value?.trim()) {\n e.preventDefault();\n onSubmit({ text: value });\n }\n }}\n />\n </PromptInputBody>\n <PromptInputFooter>\n <p className=\"text-xs text-muted-foreground hidden sm:block\">\n Commandes: /settings, /help, /clear •{\" \"}\n <kbd className=\"px-1.5 py-0.5 rounded bg-muted text-xs font-mono\">Enter</kbd> pour envoyer\n </p>\n <p className=\"text-xs text-muted-foreground sm:hidden\">\n <kbd className=\"px-1.5 py-0.5 rounded bg-muted text-xs font-mono\">Enter</kbd> pour envoyer\n </p>\n <div className=\"flex-1\" />\n <PromptInputSubmit disabled={isLoading || !value?.trim()} status={isLoading ? \"streaming\" : \"ready\"} />\n </PromptInputFooter>\n </PromptInput>\n </div>\n );\n}\n"],"names":["PromptComposer","value","isLoading","onChange","onSubmit","get","useChatLabels","promptPlaceholder","jsxs","PromptInput","jsx","PromptInputBody","PromptInputTextarea","event","e","PromptInputFooter","PromptInputSubmit"],"mappings":";;;;AAoBO,SAASA,EAAe,EAAE,OAAAC,GAAO,WAAAC,GAAW,UAAAC,GAAU,UAAAC,KAAiC;AAC5F,QAAM,EAAC,KAAAC,EAAA,IAAOC,EAAA,GACRC,IAAoBF;AAAA,IACxB;AAAA,IACA;AAAA,EAAA;AAMF,2BACG,OAAA,EAAI,WAAU,cACb,UAAA,gBAAAG,EAACC,KAAY,UAAAL,GACX,UAAA;AAAA,IAAA,gBAAAM,EAACC,GAAA,EACC,UAAA,gBAAAD;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,OAAAX;AAAA,QACA,UAVW,CAACY,MAA4C;AAChE,UAAAV,EAASU,EAAM,OAAO,KAAK;AAAA,QAC7B;AAAA,QASU,aAAaN;AAAA,QACb,UAAUL;AAAA,QACV,WAAW,CAACY,MAAM;AAChB,UAAIA,EAAE,QAAQ,WAAW,CAACA,EAAE,YAAY,CAACZ,MAAaD,KAAA,QAAAA,EAAO,YAC3Da,EAAE,eAAA,GACFV,EAAS,EAAE,MAAMH,GAAO;AAAA,QAE5B;AAAA,MAAA;AAAA,IAAA,GAEJ;AAAA,sBACCc,GAAA,EACC,UAAA;AAAA,MAAA,gBAAAP,EAAC,KAAA,EAAE,WAAU,iDAAgD,UAAA;AAAA,QAAA;AAAA,QACrB;AAAA,QACtC,gBAAAE,EAAC,OAAA,EAAI,WAAU,oDAAmD,UAAA,SAAK;AAAA,QAAM;AAAA,MAAA,GAC/E;AAAA,MACA,gBAAAF,EAAC,KAAA,EAAE,WAAU,2CACX,UAAA;AAAA,QAAA,gBAAAE,EAAC,OAAA,EAAI,WAAU,oDAAmD,UAAA,SAAK;AAAA,QAAM;AAAA,MAAA,GAC/E;AAAA,MACA,gBAAAA,EAAC,OAAA,EAAI,WAAU,SAAA,CAAS;AAAA,MACxB,gBAAAA,EAACM,GAAA,EAAkB,UAAUd,KAAa,EAACD,KAAA,QAAAA,EAAO,SAAQ,QAAQC,IAAY,cAAc,QAAA,CAAS;AAAA,IAAA,EAAA,CACvG;AAAA,EAAA,EAAA,CACF,EAAA,CACF;AAEJ;"}
@@ -1,5 +1,6 @@
1
1
  interface SidebarToggleButtonProps {
2
2
  onOpen: () => void;
3
+ className?: string;
3
4
  }
4
- export declare function SidebarToggleButton({ onOpen }: SidebarToggleButtonProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare function SidebarToggleButton({ onOpen, className }: SidebarToggleButtonProps): import("react/jsx-runtime").JSX.Element;
5
6
  export {};
@@ -1,23 +1,24 @@
1
1
  "use client";
2
- import { jsx as e } from "react/jsx-runtime";
2
+ import { jsx as r } from "react/jsx-runtime";
3
3
  import { cn as s } from "../../utils/cn.js";
4
- import { useChatLabels as n } from "../../contexts/ChatLabelsContext.js";
5
- import { P as i } from "../../chunks/panel-left.js";
6
- function f({ onOpen: r }) {
7
- const { get: t } = n(), o = t("sidebarOpenHistoryAriaLabel", "Ouvrir l'historique");
8
- return /* @__PURE__ */ e("div", { className: "absolute left-4 sm:left-6 z-40 top-2", children: /* @__PURE__ */ e(
4
+ import { useChatLabels as i } from "../../contexts/ChatLabelsContext.js";
5
+ import { P as a } from "../../chunks/panel-left.js";
6
+ function m({ onOpen: e, className: o }) {
7
+ const { get: t } = i(), n = t("sidebarOpenHistoryAriaLabel", "Ouvrir l'historique");
8
+ return /* @__PURE__ */ r(
9
9
  "button",
10
10
  {
11
- onClick: r,
11
+ onClick: e,
12
12
  className: s(
13
- "group relative flex h-10 w-10 sm:h-11 sm:w-11 items-center justify-center bg-transparent hover:bg-muted transition-all duration-200 hover:scale-105 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background rounded-lg p-2"
13
+ "group flex h-10 w-10 sm:h-11 sm:w-11 items-center justify-center bg-transparent hover:bg-muted transition-all duration-200 hover:scale-105 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background rounded-lg p-2",
14
+ o
14
15
  ),
15
- "aria-label": o,
16
- children: /* @__PURE__ */ e(i, { className: "h-4 w-4 sm:h-5 sm:w-5 text-muted-foreground transition-colors" })
16
+ "aria-label": n,
17
+ children: /* @__PURE__ */ r(a, { className: "h-4 w-4 sm:h-5 sm:w-5 text-muted-foreground transition-colors" })
17
18
  }
18
- ) });
19
+ );
19
20
  }
20
21
  export {
21
- f as SidebarToggleButton
22
+ m as SidebarToggleButton
22
23
  };
23
24
  //# sourceMappingURL=SidebarToggleButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarToggleButton.js","sources":["../../../lib/organisms/chat/SidebarToggleButton.tsx"],"sourcesContent":["\"use client\";\n\nimport {PanelLeft} from \"lucide-react\";\nimport {cn} from \"@clubmed/usg-chat-ui/utils/cn\";\nimport {useChatLabels} from \"../../contexts/ChatLabelsContext\";\n\ninterface SidebarToggleButtonProps {\n onOpen: () => void;\n}\n\nexport function SidebarToggleButton({onOpen}: SidebarToggleButtonProps) {\n const {get} = useChatLabels();\n const ariaLabel = get(\"sidebarOpenHistoryAriaLabel\", \"Ouvrir l'historique\");\n\n return (\n <div className=\"absolute left-4 sm:left-6 z-40 top-2\">\n <button\n onClick={onOpen}\n className={cn(\n \"group relative flex h-10 w-10 sm:h-11 sm:w-11 items-center justify-center bg-transparent hover:bg-muted transition-all duration-200 hover:scale-105 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background rounded-lg p-2\"\n )}\n aria-label={ariaLabel}\n >\n <PanelLeft className=\"h-4 w-4 sm:h-5 sm:w-5 text-muted-foreground transition-colors\"/>\n </button>\n </div>\n );\n}\n"],"names":["SidebarToggleButton","onOpen","get","useChatLabels","ariaLabel","jsx","cn","PanelLeft"],"mappings":";;;;;AAUO,SAASA,EAAoB,EAAC,QAAAC,KAAmC;AACtE,QAAM,EAAC,KAAAC,EAAA,IAAOC,EAAA,GACRC,IAAYF,EAAI,+BAA+B,qBAAqB;AAE1E,SACE,gBAAAG,EAAC,OAAA,EAAI,WAAU,wCACb,UAAA,gBAAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,SAASJ;AAAA,MACT,WAAWK;AAAA,QACT;AAAA,MAAA;AAAA,MAEF,cAAYF;AAAA,MAEZ,UAAA,gBAAAC,EAACE,GAAA,EAAU,WAAU,gEAAA,CAA+D;AAAA,IAAA;AAAA,EAAA,GAExF;AAEJ;"}
1
+ {"version":3,"file":"SidebarToggleButton.js","sources":["../../../lib/organisms/chat/SidebarToggleButton.tsx"],"sourcesContent":["\"use client\";\n\nimport {PanelLeft} from \"lucide-react\";\nimport {cn} from \"@clubmed/usg-chat-ui/utils/cn\";\nimport {useChatLabels} from \"../../contexts/ChatLabelsContext\";\n\ninterface SidebarToggleButtonProps {\n onOpen: () => void;\n className?: string;\n}\n\nexport function SidebarToggleButton({onOpen, className}: SidebarToggleButtonProps) {\n const {get} = useChatLabels();\n const ariaLabel = get(\"sidebarOpenHistoryAriaLabel\", \"Ouvrir l'historique\");\n\n return (\n <button\n onClick={onOpen}\n className={cn(\n \"group flex h-10 w-10 sm:h-11 sm:w-11 items-center justify-center bg-transparent hover:bg-muted transition-all duration-200 hover:scale-105 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background rounded-lg p-2\",\n className)}\n aria-label={ariaLabel}\n >\n <PanelLeft className=\"h-4 w-4 sm:h-5 sm:w-5 text-muted-foreground transition-colors\"/>\n </button>)\n ;\n}\n"],"names":["SidebarToggleButton","onOpen","className","get","useChatLabels","ariaLabel","jsx","cn","PanelLeft"],"mappings":";;;;;AAWO,SAASA,EAAoB,EAAC,QAAAC,GAAQ,WAAAC,KAAsC;AACjF,QAAM,EAAC,KAAAC,EAAA,IAAOC,EAAA,GACRC,IAAYF,EAAI,+BAA+B,qBAAqB;AAE1E,SACE,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,SAASL;AAAA,MACT,WAAWM;AAAA,QACT;AAAA,QACAL;AAAA,MAAA;AAAA,MACF,cAAYG;AAAA,MAEZ,UAAA,gBAAAC,EAACE,GAAA,EAAU,WAAU,gEAAA,CAA+D;AAAA,IAAA;AAAA,EAAA;AAG1F;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clubmed/usg-chat-ui",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "description": "Reusable ClubMed USG chat experience",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",