@tlglobal/ui 2.0.0 → 2.0.1
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/README.md +70 -0
- package/dist/AI_CONTEXT.md +1 -1
- package/dist/AI_INVENTORY.md +1 -1
- package/dist/{chunk-L5ASRHVY.js → chunk-2HCSVAI5.js} +2 -2
- package/dist/{chunk-CVXFVAS4.cjs → chunk-2ZWGB3S2.cjs} +42 -29
- package/dist/chunk-2ZWGB3S2.cjs.map +1 -0
- package/dist/{chunk-Y523KUML.js → chunk-3G65Q7C4.js} +5 -2
- package/dist/chunk-3G65Q7C4.js.map +1 -0
- package/dist/{chunk-N7NOXL4I.js → chunk-3TYFCWQ3.js} +29 -24
- package/dist/chunk-3TYFCWQ3.js.map +1 -0
- package/dist/{chunk-43UYUOCI.cjs → chunk-44WYLL4S.cjs} +5 -2
- package/dist/chunk-44WYLL4S.cjs.map +1 -0
- package/dist/{chunk-IRV6TBCD.js → chunk-4NNTKMOB.js} +5 -3
- package/dist/chunk-4NNTKMOB.js.map +1 -0
- package/dist/{chunk-V3NEBNKV.js → chunk-4OS2O7Z4.js} +41 -28
- package/dist/chunk-4OS2O7Z4.js.map +1 -0
- package/dist/{chunk-F5XBFNFL.cjs → chunk-5H6YBTVY.cjs} +12 -10
- package/dist/chunk-5H6YBTVY.cjs.map +1 -0
- package/dist/{chunk-EADT2IDZ.cjs → chunk-5YRHXI5B.cjs} +5 -2
- package/dist/chunk-5YRHXI5B.cjs.map +1 -0
- package/dist/chunk-6HVA6YPU.js +92 -0
- package/dist/chunk-6HVA6YPU.js.map +1 -0
- package/dist/{chunk-CQNMLNRY.js → chunk-6MJNOSPS.js} +14 -11
- package/dist/chunk-6MJNOSPS.js.map +1 -0
- package/dist/{chunk-HJCCG7JW.js → chunk-6PBJ4G23.js} +11 -9
- package/dist/chunk-6PBJ4G23.js.map +1 -0
- package/dist/{chunk-DBCPNZ6H.js → chunk-7PGGVGL6.js} +5 -3
- package/dist/chunk-7PGGVGL6.js.map +1 -0
- package/dist/{chunk-HRO7NGJR.cjs → chunk-A2ZOWFFG.cjs} +27 -21
- package/dist/chunk-A2ZOWFFG.cjs.map +1 -0
- package/dist/{chunk-ENO36WFO.cjs → chunk-ACSNQJA2.cjs} +15 -12
- package/dist/chunk-ACSNQJA2.cjs.map +1 -0
- package/dist/{chunk-ASXOVY3O.js → chunk-AEQRMYFY.js} +6 -2
- package/dist/chunk-AEQRMYFY.js.map +1 -0
- package/dist/{chunk-SKQHJJ6L.js → chunk-AHTKZYY6.js} +5 -3
- package/dist/chunk-AHTKZYY6.js.map +1 -0
- package/dist/{chunk-BG3HP3NJ.cjs → chunk-ASR6S6DB.cjs} +6 -4
- package/dist/chunk-ASR6S6DB.cjs.map +1 -0
- package/dist/{chunk-5TOJI2VT.cjs → chunk-BUXNYXY3.cjs} +5 -2
- package/dist/chunk-BUXNYXY3.cjs.map +1 -0
- package/dist/{chunk-ATQSUWAB.cjs → chunk-C4F5WANA.cjs} +15 -12
- package/dist/chunk-C4F5WANA.cjs.map +1 -0
- package/dist/{chunk-QX75NAXT.js → chunk-COYRHKMS.js} +21 -13
- package/dist/chunk-COYRHKMS.js.map +1 -0
- package/dist/{chunk-KG4EGAMK.js → chunk-DRL2Z5QN.js} +14 -11
- package/dist/chunk-DRL2Z5QN.js.map +1 -0
- package/dist/{chunk-4XLHRXFU.cjs → chunk-DU6MB3UR.cjs} +18 -14
- package/dist/chunk-DU6MB3UR.cjs.map +1 -0
- package/dist/{chunk-VONXCRR4.cjs → chunk-E7VMBMME.cjs} +5 -2
- package/dist/chunk-E7VMBMME.cjs.map +1 -0
- package/dist/chunk-ERR4JYSK.js +37 -0
- package/dist/chunk-ERR4JYSK.js.map +1 -0
- package/dist/{chunk-GJQOXOSX.cjs → chunk-F6AMISYP.cjs} +12 -10
- package/dist/chunk-F6AMISYP.cjs.map +1 -0
- package/dist/{chunk-NCYN3QQU.cjs → chunk-GD6QZD2T.cjs} +22 -14
- package/dist/chunk-GD6QZD2T.cjs.map +1 -0
- package/dist/{chunk-GAIT5TGX.js → chunk-GLOGO66M.js} +2 -2
- package/dist/{chunk-QEVPIMPR.js → chunk-ITPU3GJP.js} +17 -13
- package/dist/chunk-ITPU3GJP.js.map +1 -0
- package/dist/{chunk-7VXLTE5S.cjs → chunk-JFDZ7CML.cjs} +8 -8
- package/dist/{chunk-7VXLTE5S.cjs.map → chunk-JFDZ7CML.cjs.map} +1 -1
- package/dist/{chunk-HWVBYDV7.cjs → chunk-JVNI5OEZ.cjs} +39 -15
- package/dist/chunk-JVNI5OEZ.cjs.map +1 -0
- package/dist/{chunk-3PA53VKD.js → chunk-KLCAYZB2.js} +37 -13
- package/dist/chunk-KLCAYZB2.js.map +1 -0
- package/dist/{chunk-77VS352K.js → chunk-KTKJUALJ.js} +5 -2
- package/dist/chunk-KTKJUALJ.js.map +1 -0
- package/dist/{chunk-H3RKRRVM.js → chunk-L5KEJ5FQ.js} +202 -190
- package/dist/chunk-L5KEJ5FQ.js.map +1 -0
- package/dist/chunk-LDABSX4U.js +9 -0
- package/dist/chunk-LDABSX4U.js.map +1 -0
- package/dist/chunk-LEAPQI7O.cjs +37 -0
- package/dist/chunk-LEAPQI7O.cjs.map +1 -0
- package/dist/{chunk-XGCIOWNR.cjs → chunk-LS6JKLML.cjs} +6 -4
- package/dist/chunk-LS6JKLML.cjs.map +1 -0
- package/dist/{chunk-GJGPQRIK.js → chunk-NKZBBAJ5.js} +2 -2
- package/dist/{chunk-QT6A3IGJ.js → chunk-ODXGLPJL.js} +11 -8
- package/dist/chunk-ODXGLPJL.js.map +1 -0
- package/dist/{chunk-2GWZWHLI.cjs → chunk-OFJMBPJN.cjs} +3 -3
- package/dist/{chunk-2GWZWHLI.cjs.map → chunk-OFJMBPJN.cjs.map} +1 -1
- package/dist/{chunk-3FJ2AYA2.js → chunk-OKUW3EEZ.js} +26 -20
- package/dist/chunk-OKUW3EEZ.js.map +1 -0
- package/dist/{chunk-ZWS4E67U.cjs → chunk-PSNYF5AW.cjs} +3 -3
- package/dist/{chunk-ZWS4E67U.cjs.map → chunk-PSNYF5AW.cjs.map} +1 -1
- package/dist/{chunk-QET47X4U.cjs → chunk-PXVC4OBB.cjs} +12 -9
- package/dist/chunk-PXVC4OBB.cjs.map +1 -0
- package/dist/{chunk-T4FTROIQ.cjs → chunk-PZN4WYN7.cjs} +20 -23
- package/dist/chunk-PZN4WYN7.cjs.map +1 -0
- package/dist/chunk-Q2JCE4CK.cjs +9 -0
- package/dist/chunk-Q2JCE4CK.cjs.map +1 -0
- package/dist/{chunk-XWMDE3D5.cjs → chunk-RKPN6UFK.cjs} +6 -4
- package/dist/chunk-RKPN6UFK.cjs.map +1 -0
- package/dist/{chunk-LZEQUT4L.cjs → chunk-RX5FOAD2.cjs} +15 -12
- package/dist/chunk-RX5FOAD2.cjs.map +1 -0
- package/dist/{chunk-XMCP5ITG.cjs → chunk-RXX2IGK5.cjs} +3 -3
- package/dist/{chunk-XMCP5ITG.cjs.map → chunk-RXX2IGK5.cjs.map} +1 -1
- package/dist/{chunk-JPABWZU4.js → chunk-S5CNVXZ3.js} +2 -2
- package/dist/{chunk-OZR3RLEW.cjs → chunk-SQAK5ZSK.cjs} +191 -179
- package/dist/chunk-SQAK5ZSK.cjs.map +1 -0
- package/dist/chunk-TAAZXDXC.cjs +92 -0
- package/dist/chunk-TAAZXDXC.cjs.map +1 -0
- package/dist/chunk-TS6NCZG4.cjs +84 -0
- package/dist/chunk-TS6NCZG4.cjs.map +1 -0
- package/dist/{chunk-PNBLW6BD.cjs → chunk-UAQVDWOH.cjs} +6 -2
- package/dist/chunk-UAQVDWOH.cjs.map +1 -0
- package/dist/{chunk-7KV2ASQZ.js → chunk-UC2Y7ECN.js} +5 -2
- package/dist/chunk-UC2Y7ECN.js.map +1 -0
- package/dist/{chunk-NROYDPOG.js → chunk-UCL2G3AW.js} +5 -2
- package/dist/chunk-UCL2G3AW.js.map +1 -0
- package/dist/{chunk-JSVWJPQG.js → chunk-UDYPJDYS.js} +5 -2
- package/dist/chunk-UDYPJDYS.js.map +1 -0
- package/dist/{chunk-HAMZFEZO.cjs → chunk-UMGGVQCD.cjs} +5 -2
- package/dist/chunk-UMGGVQCD.cjs.map +1 -0
- package/dist/{chunk-FSFKN344.js → chunk-VZSNQ6KY.js} +26 -19
- package/dist/chunk-VZSNQ6KY.js.map +1 -0
- package/dist/{chunk-G362MHBO.cjs → chunk-W2IIKFUQ.cjs} +5 -2
- package/dist/chunk-W2IIKFUQ.cjs.map +1 -0
- package/dist/{chunk-C35O5Z4E.js → chunk-WDQGXT4B.js} +11 -9
- package/dist/chunk-WDQGXT4B.js.map +1 -0
- package/dist/{chunk-KIAO4YXV.js → chunk-X2DTRB5I.js} +18 -21
- package/dist/chunk-X2DTRB5I.js.map +1 -0
- package/dist/chunk-XBXIJY6C.js +84 -0
- package/dist/chunk-XBXIJY6C.js.map +1 -0
- package/dist/{chunk-SN6MWJU6.js → chunk-YPW3ZNNH.js} +5 -2
- package/dist/chunk-YPW3ZNNH.js.map +1 -0
- package/dist/{chunk-YEH5VLWU.js → chunk-YY7LSY6F.js} +14 -11
- package/dist/chunk-YY7LSY6F.js.map +1 -0
- package/dist/{chunk-PFK42QIX.cjs → chunk-Z2LS4QUV.cjs} +27 -20
- package/dist/chunk-Z2LS4QUV.cjs.map +1 -0
- package/dist/{chunk-6LNO6LIW.cjs → chunk-ZSPEIPFP.cjs} +30 -25
- package/dist/chunk-ZSPEIPFP.cjs.map +1 -0
- package/dist/components/accordion/Accordion.d.ts +10 -4
- package/dist/components/accordion/index.cjs +2 -2
- package/dist/components/accordion/index.js +1 -1
- package/dist/components/alert-dialog/AlertDialog.d.ts +12 -5
- package/dist/components/alert-dialog/index.cjs +2 -2
- package/dist/components/alert-dialog/index.js +1 -1
- package/dist/components/attachment/Attachment.d.ts +16 -9
- package/dist/components/attachment/index.cjs +2 -2
- package/dist/components/attachment/index.js +1 -1
- package/dist/components/button/index.cjs +3 -2
- package/dist/components/button/index.cjs.map +1 -1
- package/dist/components/button/index.js +2 -1
- package/dist/components/calendar/index.cjs +3 -2
- package/dist/components/calendar/index.cjs.map +1 -1
- package/dist/components/calendar/index.js +2 -1
- package/dist/components/carousel/Carousel.d.ts +6 -6
- package/dist/components/carousel/index.cjs +4 -3
- package/dist/components/carousel/index.cjs.map +1 -1
- package/dist/components/carousel/index.js +3 -2
- package/dist/components/chart/Chart.d.ts +4 -4
- package/dist/components/chart/index.cjs +2 -2
- package/dist/components/chart/index.js +1 -1
- package/dist/components/combobox/index.cjs +3 -3
- package/dist/components/combobox/index.js +2 -2
- package/dist/components/command/Command.d.ts +11 -9
- package/dist/components/command/index.cjs +2 -2
- package/dist/components/command/index.js +1 -1
- package/dist/components/context-menu/ContextMenu.d.ts +33 -10
- package/dist/components/context-menu/index.cjs +2 -2
- package/dist/components/context-menu/index.js +1 -1
- package/dist/components/date-picker/index.cjs +4 -3
- package/dist/components/date-picker/index.cjs.map +1 -1
- package/dist/components/date-picker/index.js +3 -2
- package/dist/components/dialog/Dialog.d.ts +11 -5
- package/dist/components/dialog/index.cjs +2 -2
- package/dist/components/dialog/index.js +1 -1
- package/dist/components/drawer/Drawer.d.ts +11 -5
- package/dist/components/drawer/index.cjs +2 -2
- package/dist/components/drawer/index.js +1 -1
- package/dist/components/dropdown-menu/DropdownMenu.d.ts +33 -10
- package/dist/components/dropdown-menu/index.cjs +2 -2
- package/dist/components/dropdown-menu/index.js +1 -1
- package/dist/components/hover-card/HoverCard.d.ts +4 -2
- package/dist/components/hover-card/index.cjs +2 -2
- package/dist/components/hover-card/index.js +1 -1
- package/dist/components/icon-button/index.cjs +3 -2
- package/dist/components/icon-button/index.cjs.map +1 -1
- package/dist/components/icon-button/index.js +2 -1
- package/dist/components/menubar/Menubar.d.ts +34 -11
- package/dist/components/menubar/index.cjs +2 -2
- package/dist/components/menubar/index.js +1 -1
- package/dist/components/message/Message.d.ts +10 -10
- package/dist/components/message/index.cjs +2 -2
- package/dist/components/message/index.js +1 -1
- package/dist/components/message-scroller/MessageScroller.d.ts +5 -5
- package/dist/components/message-scroller/index.cjs +4 -3
- package/dist/components/message-scroller/index.cjs.map +1 -1
- package/dist/components/message-scroller/index.js +3 -2
- package/dist/components/navigation-menu/NavigationMenu.d.ts +18 -6
- package/dist/components/navigation-menu/index.cjs +2 -2
- package/dist/components/navigation-menu/index.js +1 -1
- package/dist/components/pagination/index.cjs +3 -2
- package/dist/components/pagination/index.cjs.map +1 -1
- package/dist/components/pagination/index.js +2 -1
- package/dist/components/popover/Popover.d.ts +4 -2
- package/dist/components/popover/index.cjs +2 -2
- package/dist/components/popover/index.js +1 -1
- package/dist/components/questionnaire/index.cjs +3 -2
- package/dist/components/questionnaire/index.cjs.map +1 -1
- package/dist/components/questionnaire/index.js +2 -1
- package/dist/components/resizable/Resizable.d.ts +4 -4
- package/dist/components/resizable/index.cjs +2 -2
- package/dist/components/resizable/index.js +1 -1
- package/dist/components/sheet/Sheet.d.ts +13 -7
- package/dist/components/sheet/index.cjs +2 -2
- package/dist/components/sheet/index.js +1 -1
- package/dist/components/sidebar/index.cjs +6 -5
- package/dist/components/sidebar/index.cjs.map +1 -1
- package/dist/components/sidebar/index.js +5 -4
- package/dist/components/slider/index.cjs +3 -2
- package/dist/components/slider/index.cjs.map +1 -1
- package/dist/components/slider/index.js +2 -1
- package/dist/components/tabs/Tabs.d.ts +7 -3
- package/dist/components/tabs/index.cjs +3 -2
- package/dist/components/tabs/index.cjs.map +1 -1
- package/dist/components/tabs/index.js +2 -1
- package/dist/components/toggle/index.cjs +4 -3
- package/dist/components/toggle/index.cjs.map +1 -1
- package/dist/components/toggle/index.js +3 -2
- package/dist/components/toggle-group/index.cjs +4 -3
- package/dist/components/toggle-group/index.cjs.map +1 -1
- package/dist/components/toggle-group/index.js +3 -2
- package/dist/components/tooltip/Tooltip.d.ts +2 -2
- package/dist/components/tooltip/index.cjs +2 -2
- package/dist/components/tooltip/index.js +1 -1
- package/dist/index.cjs +36 -35
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +36 -35
- package/dist/ui-manifest.json +1 -1
- package/package.json +3 -3
- package/dist/chunk-3FJ2AYA2.js.map +0 -1
- package/dist/chunk-3PA53VKD.js.map +0 -1
- package/dist/chunk-3WN2VYVW.js +0 -74
- package/dist/chunk-3WN2VYVW.js.map +0 -1
- package/dist/chunk-43UYUOCI.cjs.map +0 -1
- package/dist/chunk-4XLHRXFU.cjs.map +0 -1
- package/dist/chunk-5TOJI2VT.cjs.map +0 -1
- package/dist/chunk-6LNO6LIW.cjs.map +0 -1
- package/dist/chunk-77VS352K.js.map +0 -1
- package/dist/chunk-7KV2ASQZ.js.map +0 -1
- package/dist/chunk-7USP3KPM.js +0 -74
- package/dist/chunk-7USP3KPM.js.map +0 -1
- package/dist/chunk-ASXOVY3O.js.map +0 -1
- package/dist/chunk-ATQSUWAB.cjs.map +0 -1
- package/dist/chunk-BG3HP3NJ.cjs.map +0 -1
- package/dist/chunk-C35O5Z4E.js.map +0 -1
- package/dist/chunk-C4M7CGEJ.cjs +0 -33
- package/dist/chunk-C4M7CGEJ.cjs.map +0 -1
- package/dist/chunk-CQNMLNRY.js.map +0 -1
- package/dist/chunk-CVXFVAS4.cjs.map +0 -1
- package/dist/chunk-DBCPNZ6H.js.map +0 -1
- package/dist/chunk-EADT2IDZ.cjs.map +0 -1
- package/dist/chunk-ENO36WFO.cjs.map +0 -1
- package/dist/chunk-F5XBFNFL.cjs.map +0 -1
- package/dist/chunk-FSFKN344.js.map +0 -1
- package/dist/chunk-G362MHBO.cjs.map +0 -1
- package/dist/chunk-GJQOXOSX.cjs.map +0 -1
- package/dist/chunk-H3RKRRVM.js.map +0 -1
- package/dist/chunk-HAMZFEZO.cjs.map +0 -1
- package/dist/chunk-HFYNUSDC.cjs +0 -74
- package/dist/chunk-HFYNUSDC.cjs.map +0 -1
- package/dist/chunk-HJCCG7JW.js.map +0 -1
- package/dist/chunk-HRO7NGJR.cjs.map +0 -1
- package/dist/chunk-HWVBYDV7.cjs.map +0 -1
- package/dist/chunk-IQ62AKGY.cjs +0 -74
- package/dist/chunk-IQ62AKGY.cjs.map +0 -1
- package/dist/chunk-IRV6TBCD.js.map +0 -1
- package/dist/chunk-JSVWJPQG.js.map +0 -1
- package/dist/chunk-K5CAZ7C4.js +0 -33
- package/dist/chunk-K5CAZ7C4.js.map +0 -1
- package/dist/chunk-KG4EGAMK.js.map +0 -1
- package/dist/chunk-KIAO4YXV.js.map +0 -1
- package/dist/chunk-LZEQUT4L.cjs.map +0 -1
- package/dist/chunk-N7NOXL4I.js.map +0 -1
- package/dist/chunk-NCYN3QQU.cjs.map +0 -1
- package/dist/chunk-NROYDPOG.js.map +0 -1
- package/dist/chunk-OZR3RLEW.cjs.map +0 -1
- package/dist/chunk-PFK42QIX.cjs.map +0 -1
- package/dist/chunk-PNBLW6BD.cjs.map +0 -1
- package/dist/chunk-QET47X4U.cjs.map +0 -1
- package/dist/chunk-QEVPIMPR.js.map +0 -1
- package/dist/chunk-QT6A3IGJ.js.map +0 -1
- package/dist/chunk-QX75NAXT.js.map +0 -1
- package/dist/chunk-SKQHJJ6L.js.map +0 -1
- package/dist/chunk-SN6MWJU6.js.map +0 -1
- package/dist/chunk-T4FTROIQ.cjs.map +0 -1
- package/dist/chunk-V3NEBNKV.js.map +0 -1
- package/dist/chunk-VONXCRR4.cjs.map +0 -1
- package/dist/chunk-XGCIOWNR.cjs.map +0 -1
- package/dist/chunk-XWMDE3D5.cjs.map +0 -1
- package/dist/chunk-Y523KUML.js.map +0 -1
- package/dist/chunk-YEH5VLWU.js.map +0 -1
- /package/dist/{chunk-L5ASRHVY.js.map → chunk-2HCSVAI5.js.map} +0 -0
- /package/dist/{chunk-GAIT5TGX.js.map → chunk-GLOGO66M.js.map} +0 -0
- /package/dist/{chunk-GJGPQRIK.js.map → chunk-NKZBBAJ5.js.map} +0 -0
- /package/dist/{chunk-JPABWZU4.js.map → chunk-S5CNVXZ3.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/chart/Chart.jsx"],"sourcesContent":["import React, { createContext, useContext, useId } from \"react\";\nimport * as RechartsPrimitive from \"recharts\";\nimport { cn } from \"../../lib/cn.js\";\n\nconst ChartContext = createContext(null);\n\nfunction useChart() {\n const context = useContext(ChartContext);\n if (!context) throw new Error(\"Chart.Tooltip/LegendContent must be used within Chart.Container\");\n return context;\n}\n\n// `config` maps a data/series key to { label, color }. `color` is written into a scoped\n// <style> block as --color-<key>, which series/marks then reference via var(--color-<key>) —\n// this is what lets a chart repaint under [data-theme=\"dark\"] the same way components do,\n// instead of baking a literal color into each <Bar>/<Line> fill/stroke prop.\n// initialDimension defaults ResponsiveContainer to a real size before its first ResizeObserver\n// measurement lands — avoids an empty-chart flash on first paint in real browsers, and is what\n// makes charts render at all under jsdom, whose ResizeObserver polyfill never fires a callback.\nconst Container = React.forwardRef(function Container(\n { config, className, children, initialDimension, ...props },\n ref,\n) {\n const uniqueId = useId();\n const chartId = `chart-${uniqueId.replace(/:/g, \"\")}`;\n const entries = Object.entries(config).filter(([, value]) => value.color);\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n ref={ref}\n data-chart={chartId}\n className={cn(\n \"aspect-video w-full font-sans text-xs [&_.recharts-cartesian-axis-tick_text]:fill-text-muted [&_.recharts-cartesian-grid_line]:stroke-border-default [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border-strong [&_.recharts-dot]:stroke-transparent\",\n className,\n )}\n {...props}\n >\n {entries.length > 0 && (\n <style\n dangerouslySetInnerHTML={{\n __html: `[data-chart=${chartId}] {\\n${entries\n .map(([key, value]) => ` --color-${key}: ${value.color};`)\n .join(\"\\n\")}\\n}`,\n }}\n />\n )}\n <RechartsPrimitive.ResponsiveContainer initialDimension={initialDimension ?? { width: 400, height: 250 }}>\n {children}\n </RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n});\n\nconst TooltipContent = React.forwardRef(function TooltipContent({ active, payload, label, className, ...props }, ref) {\n const { config } = useChart();\n if (!active || !payload?.length) return null;\n\n return (\n <div\n ref={ref}\n className={cn(\"min-w-[10rem] rounded-md border border-border-default bg-bg-page p-2.5 shadow-md\", className)}\n {...props}\n >\n {label && <div className=\"mb-1.5 text-xs font-semibold text-text-primary\">{label}</div>}\n <div className=\"flex flex-col gap-1\">\n {payload.map((item) => {\n const key = item.dataKey || item.name;\n const itemConfig = config[key];\n return (\n <div key={key} className=\"flex items-center justify-between gap-4 text-xs\">\n <span className=\"flex items-center gap-1.5 text-text-secondary\">\n <span className=\"h-2 w-2 rounded-full\" style={{ background: `var(--color-${key})` }} />\n {itemConfig?.label || key}\n </span>\n <span className=\"font-mono font-medium text-text-primary\">{item.value}</span>\n </div>\n );\n })}\n </div>\n </div>\n );\n});\n\nconst LegendContent = React.forwardRef(function LegendContent({ payload, className, ...props }, ref) {\n const { config } = useChart();\n if (!payload?.length) return null;\n\n return (\n <div ref={ref} className={cn(\"flex flex-wrap items-center justify-center gap-4 pt-3\", className)} {...props}>\n {payload.map((item) => {\n const key = item.dataKey || item.value;\n const itemConfig = config[key];\n return (\n <div key={key} className=\"flex items-center gap-1.5 text-xs text-text-secondary\">\n <span className=\"h-2 w-2 rounded-full\" style={{ background: item.color }} />\n {itemConfig?.label || item.value}\n </div>\n );\n })}\n </div>\n );\n});\n\nexport const Chart = {\n Container,\n Tooltip: RechartsPrimitive.Tooltip,\n TooltipContent,\n Legend: RechartsPrimitive.Legend,\n LegendContent,\n};\n"],"mappings":"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","names":["Container","TooltipContent","LegendContent"]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import {
|
|
3
3
|
IconButton
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-3G65Q7C4.js";
|
|
5
5
|
import {
|
|
6
6
|
cn
|
|
7
7
|
} from "./chunk-74GQ35MJ.js";
|
|
8
8
|
|
|
9
9
|
// src/components/carousel/Carousel.jsx
|
|
10
|
-
import { createContext, useCallback, useContext, useEffect, useState } from "react";
|
|
10
|
+
import React, { createContext, useCallback, useContext, useEffect, useState } from "react";
|
|
11
11
|
import useEmblaCarousel from "embla-carousel-react";
|
|
12
12
|
import { ChevronLeft, ChevronRight } from "@tlglobal/icons";
|
|
13
13
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -17,14 +17,7 @@ function useCarousel() {
|
|
|
17
17
|
if (!context) throw new Error("Carousel parts must be used within Carousel.Root");
|
|
18
18
|
return context;
|
|
19
19
|
}
|
|
20
|
-
|
|
21
|
-
orientation = "horizontal",
|
|
22
|
-
opts,
|
|
23
|
-
className,
|
|
24
|
-
"aria-label": ariaLabel = "Carousel",
|
|
25
|
-
children,
|
|
26
|
-
...props
|
|
27
|
-
}) {
|
|
20
|
+
var Root = React.forwardRef(function Root2({ orientation = "horizontal", opts, className, "aria-label": ariaLabel = "Carousel", children, ...props }, ref) {
|
|
28
21
|
const [emblaRef, emblaApi] = useEmblaCarousel({ ...opts, axis: orientation === "horizontal" ? "x" : "y" });
|
|
29
22
|
const [canScrollPrev, setCanScrollPrev] = useState(false);
|
|
30
23
|
const [canScrollNext, setCanScrollNext] = useState(false);
|
|
@@ -48,6 +41,7 @@ function Root({
|
|
|
48
41
|
children: /* @__PURE__ */ jsx(
|
|
49
42
|
"div",
|
|
50
43
|
{
|
|
44
|
+
ref,
|
|
51
45
|
className: cn("relative", className),
|
|
52
46
|
role: "region",
|
|
53
47
|
"aria-roledescription": "carousel",
|
|
@@ -58,16 +52,17 @@ function Root({
|
|
|
58
52
|
)
|
|
59
53
|
}
|
|
60
54
|
);
|
|
61
|
-
}
|
|
62
|
-
|
|
55
|
+
});
|
|
56
|
+
var Content = React.forwardRef(function Content2({ className, ...props }, ref) {
|
|
63
57
|
const { emblaRef, orientation } = useCarousel();
|
|
64
|
-
return /* @__PURE__ */ jsx("div", { ref: emblaRef, className: "overflow-hidden", children: /* @__PURE__ */ jsx("div", { className: cn("flex", orientation === "vertical" && "flex-col", className), ...props }) });
|
|
65
|
-
}
|
|
66
|
-
|
|
58
|
+
return /* @__PURE__ */ jsx("div", { ref: emblaRef, className: "overflow-hidden", children: /* @__PURE__ */ jsx("div", { ref, className: cn("flex", orientation === "vertical" && "flex-col", className), ...props }) });
|
|
59
|
+
});
|
|
60
|
+
var Item = React.forwardRef(function Item2({ className, ...props }, ref) {
|
|
67
61
|
const { orientation } = useCarousel();
|
|
68
62
|
return /* @__PURE__ */ jsx(
|
|
69
63
|
"div",
|
|
70
64
|
{
|
|
65
|
+
ref,
|
|
71
66
|
role: "group",
|
|
72
67
|
"aria-roledescription": "slide",
|
|
73
68
|
className: cn(
|
|
@@ -78,12 +73,13 @@ function Item({ className, ...props }) {
|
|
|
78
73
|
...props
|
|
79
74
|
}
|
|
80
75
|
);
|
|
81
|
-
}
|
|
82
|
-
|
|
76
|
+
});
|
|
77
|
+
var Previous = React.forwardRef(function Previous2({ className, ...props }, ref) {
|
|
83
78
|
const { scrollPrev, canScrollPrev, orientation } = useCarousel();
|
|
84
79
|
return /* @__PURE__ */ jsx(
|
|
85
80
|
IconButton,
|
|
86
81
|
{
|
|
82
|
+
ref,
|
|
87
83
|
variant: "secondary",
|
|
88
84
|
size: "sm",
|
|
89
85
|
icon: /* @__PURE__ */ jsx(ChevronLeft, { size: 16 }),
|
|
@@ -98,12 +94,13 @@ function Previous({ className, ...props }) {
|
|
|
98
94
|
...props
|
|
99
95
|
}
|
|
100
96
|
);
|
|
101
|
-
}
|
|
102
|
-
|
|
97
|
+
});
|
|
98
|
+
var Next = React.forwardRef(function Next2({ className, ...props }, ref) {
|
|
103
99
|
const { scrollNext, canScrollNext, orientation } = useCarousel();
|
|
104
100
|
return /* @__PURE__ */ jsx(
|
|
105
101
|
IconButton,
|
|
106
102
|
{
|
|
103
|
+
ref,
|
|
107
104
|
variant: "secondary",
|
|
108
105
|
size: "sm",
|
|
109
106
|
icon: /* @__PURE__ */ jsx(ChevronRight, { size: 16 }),
|
|
@@ -118,10 +115,10 @@ function Next({ className, ...props }) {
|
|
|
118
115
|
...props
|
|
119
116
|
}
|
|
120
117
|
);
|
|
121
|
-
}
|
|
118
|
+
});
|
|
122
119
|
var Carousel = { Root, Content, Item, Previous, Next };
|
|
123
120
|
|
|
124
121
|
export {
|
|
125
122
|
Carousel
|
|
126
123
|
};
|
|
127
|
-
//# sourceMappingURL=chunk-
|
|
124
|
+
//# sourceMappingURL=chunk-X2DTRB5I.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/carousel/Carousel.jsx"],"sourcesContent":["import React, { createContext, useCallback, useContext, useEffect, useState } from \"react\";\nimport useEmblaCarousel from \"embla-carousel-react\";\nimport { ChevronLeft, ChevronRight } from \"@tlglobal/icons\";\nimport { cn } from \"../../lib/cn.js\";\nimport { IconButton } from \"../icon-button/IconButton.jsx\";\n\nconst CarouselContext = createContext(null);\n\nfunction useCarousel() {\n const context = useContext(CarouselContext);\n if (!context) throw new Error(\"Carousel parts must be used within Carousel.Root\");\n return context;\n}\n\nconst Root = React.forwardRef(function Root(\n { orientation = \"horizontal\", opts, className, \"aria-label\": ariaLabel = \"Carousel\", children, ...props },\n ref,\n) {\n const [emblaRef, emblaApi] = useEmblaCarousel({ ...opts, axis: orientation === \"horizontal\" ? \"x\" : \"y\" });\n const [canScrollPrev, setCanScrollPrev] = useState(false);\n const [canScrollNext, setCanScrollNext] = useState(false);\n\n const onSelect = useCallback((api) => {\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = useCallback(() => emblaApi?.scrollPrev(), [emblaApi]);\n const scrollNext = useCallback(() => emblaApi?.scrollNext(), [emblaApi]);\n\n useEffect(() => {\n if (!emblaApi) return undefined;\n onSelect(emblaApi);\n emblaApi.on(\"reInit\", onSelect);\n emblaApi.on(\"select\", onSelect);\n return () => emblaApi.off(\"select\", onSelect);\n }, [emblaApi, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{ emblaRef, emblaApi, orientation, scrollPrev, scrollNext, canScrollPrev, canScrollNext }}\n >\n <div\n ref={ref}\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n aria-label={ariaLabel}\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n});\n\nconst Content = React.forwardRef(function Content({ className, ...props }, ref) {\n const { emblaRef, orientation } = useCarousel();\n return (\n <div ref={emblaRef} className=\"overflow-hidden\">\n <div ref={ref} className={cn(\"flex\", orientation === \"vertical\" && \"flex-col\", className)} {...props} />\n </div>\n );\n});\n\nconst Item = React.forwardRef(function Item({ className, ...props }, ref) {\n const { orientation } = useCarousel();\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"vertical\" ? \"pt-4 first:pt-0\" : \"pl-4 first:pl-0\",\n className,\n )}\n {...props}\n />\n );\n});\n\nconst Previous = React.forwardRef(function Previous({ className, ...props }, ref) {\n const { scrollPrev, canScrollPrev, orientation } = useCarousel();\n return (\n <IconButton\n ref={ref}\n variant=\"secondary\"\n size=\"sm\"\n icon={<ChevronLeft size={16} />}\n aria-label=\"Previous slide\"\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n className={cn(\n \"absolute\",\n orientation === \"horizontal\" ? \"-left-10 top-1/2 -translate-y-1/2\" : \"-top-10 left-1/2 -translate-x-1/2 rotate-90\",\n className,\n )}\n {...props}\n />\n );\n});\n\nconst Next = React.forwardRef(function Next({ className, ...props }, ref) {\n const { scrollNext, canScrollNext, orientation } = useCarousel();\n return (\n <IconButton\n ref={ref}\n variant=\"secondary\"\n size=\"sm\"\n icon={<ChevronRight size={16} />}\n aria-label=\"Next slide\"\n disabled={!canScrollNext}\n onClick={scrollNext}\n className={cn(\n \"absolute\",\n orientation === \"horizontal\" ? \"-right-10 top-1/2 -translate-y-1/2\" : \"-bottom-10 left-1/2 -translate-x-1/2 rotate-90\",\n className,\n )}\n {...props}\n />\n );\n});\n\nexport const Carousel = { Root, Content, Item, Previous, Next };\n"],"mappings":"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","names":["Root","Content","Item","Previous","Next"]}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import {
|
|
3
|
+
cn
|
|
4
|
+
} from "./chunk-74GQ35MJ.js";
|
|
5
|
+
|
|
6
|
+
// src/components/context-menu/ContextMenu.jsx
|
|
7
|
+
import React from "react";
|
|
8
|
+
import { ContextMenu as RadixContextMenu } from "radix-ui";
|
|
9
|
+
import { Check, ChevronRight, Circle } from "@tlglobal/icons";
|
|
10
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
|
+
var contentClass = "z-50 min-w-[10rem] overflow-hidden rounded-md border border-border-default bg-bg-page p-1 shadow-md";
|
|
12
|
+
var itemClass = "relative flex h-9 cursor-pointer select-none items-center rounded-sm px-2 text-sm text-text-primary outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[highlighted]:bg-bg-surface";
|
|
13
|
+
var Content = React.forwardRef(function Content2({ className, ...props }, ref) {
|
|
14
|
+
return /* @__PURE__ */ jsx(RadixContextMenu.Portal, { children: /* @__PURE__ */ jsx(RadixContextMenu.Content, { ref, className: cn(contentClass, className), ...props }) });
|
|
15
|
+
});
|
|
16
|
+
var Item = React.forwardRef(function Item2({ className, inset, ...props }, ref) {
|
|
17
|
+
return /* @__PURE__ */ jsx(RadixContextMenu.Item, { ref, className: cn(itemClass, inset && "pl-8", className), ...props });
|
|
18
|
+
});
|
|
19
|
+
var CheckboxItem = React.forwardRef(function CheckboxItem2({ className, children, ...props }, ref) {
|
|
20
|
+
return /* @__PURE__ */ jsxs(RadixContextMenu.CheckboxItem, { ref, className: cn(itemClass, "pl-8", className), ...props, children: [
|
|
21
|
+
/* @__PURE__ */ jsx(RadixContextMenu.ItemIndicator, { className: "absolute left-2.5 inline-flex items-center", children: /* @__PURE__ */ jsx(Check, { size: 14, className: "text-accent" }) }),
|
|
22
|
+
children
|
|
23
|
+
] });
|
|
24
|
+
});
|
|
25
|
+
var RadioItem = React.forwardRef(function RadioItem2({ className, children, ...props }, ref) {
|
|
26
|
+
return /* @__PURE__ */ jsxs(RadixContextMenu.RadioItem, { ref, className: cn(itemClass, "pl-8", className), ...props, children: [
|
|
27
|
+
/* @__PURE__ */ jsx(RadixContextMenu.ItemIndicator, { className: "absolute left-2.5 inline-flex items-center", children: /* @__PURE__ */ jsx(Circle, { size: 8, className: "fill-accent text-accent" }) }),
|
|
28
|
+
children
|
|
29
|
+
] });
|
|
30
|
+
});
|
|
31
|
+
var Label = React.forwardRef(function Label2({ className, inset, ...props }, ref) {
|
|
32
|
+
return /* @__PURE__ */ jsx(
|
|
33
|
+
RadixContextMenu.Label,
|
|
34
|
+
{
|
|
35
|
+
ref,
|
|
36
|
+
className: cn("px-2 py-1.5 text-xs font-semibold text-text-muted", inset && "pl-8", className),
|
|
37
|
+
...props
|
|
38
|
+
}
|
|
39
|
+
);
|
|
40
|
+
});
|
|
41
|
+
var Separator = React.forwardRef(function Separator2({ className, ...props }, ref) {
|
|
42
|
+
return /* @__PURE__ */ jsx(RadixContextMenu.Separator, { ref, className: cn("my-1 h-px bg-border-default", className), ...props });
|
|
43
|
+
});
|
|
44
|
+
var Shortcut = React.forwardRef(function Shortcut2({ className, ...props }, ref) {
|
|
45
|
+
return /* @__PURE__ */ jsx("span", { ref, className: cn("ml-auto pl-4 text-xs tracking-widest text-text-muted", className), ...props });
|
|
46
|
+
});
|
|
47
|
+
var SubTrigger = React.forwardRef(function SubTrigger2({ className, inset, children, ...props }, ref) {
|
|
48
|
+
return /* @__PURE__ */ jsxs(
|
|
49
|
+
RadixContextMenu.SubTrigger,
|
|
50
|
+
{
|
|
51
|
+
ref,
|
|
52
|
+
className: cn(itemClass, "data-[state=open]:bg-bg-surface", inset && "pl-8", className),
|
|
53
|
+
...props,
|
|
54
|
+
children: [
|
|
55
|
+
children,
|
|
56
|
+
/* @__PURE__ */ jsx(ChevronRight, { size: 14, className: "ml-auto text-text-muted" })
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
);
|
|
60
|
+
});
|
|
61
|
+
var SubContent = React.forwardRef(function SubContent2({ className, ...props }, ref) {
|
|
62
|
+
return /* @__PURE__ */ jsx(RadixContextMenu.Portal, { children: /* @__PURE__ */ jsx(RadixContextMenu.SubContent, { ref, className: cn(contentClass, className), ...props }) });
|
|
63
|
+
});
|
|
64
|
+
var ContextMenu = {
|
|
65
|
+
Root: RadixContextMenu.Root,
|
|
66
|
+
Trigger: RadixContextMenu.Trigger,
|
|
67
|
+
Content,
|
|
68
|
+
Item,
|
|
69
|
+
CheckboxItem,
|
|
70
|
+
RadioGroup: RadixContextMenu.RadioGroup,
|
|
71
|
+
RadioItem,
|
|
72
|
+
Label,
|
|
73
|
+
Separator,
|
|
74
|
+
Shortcut,
|
|
75
|
+
Group: RadixContextMenu.Group,
|
|
76
|
+
Sub: RadixContextMenu.Sub,
|
|
77
|
+
SubTrigger,
|
|
78
|
+
SubContent
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export {
|
|
82
|
+
ContextMenu
|
|
83
|
+
};
|
|
84
|
+
//# sourceMappingURL=chunk-XBXIJY6C.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/context-menu/ContextMenu.jsx"],"sourcesContent":["import React from \"react\";\nimport { ContextMenu as RadixContextMenu } from \"radix-ui\";\nimport { Check, ChevronRight, Circle } from \"@tlglobal/icons\";\nimport { cn } from \"../../lib/cn.js\";\n\nconst contentClass = \"z-50 min-w-[10rem] overflow-hidden rounded-md border border-border-default bg-bg-page p-1 shadow-md\";\nconst itemClass =\n \"relative flex h-9 cursor-pointer select-none items-center rounded-sm px-2 text-sm text-text-primary outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[highlighted]:bg-bg-surface\";\n\nconst Content = React.forwardRef(function Content({ className, ...props }, ref) {\n return (\n <RadixContextMenu.Portal>\n <RadixContextMenu.Content ref={ref} className={cn(contentClass, className)} {...props} />\n </RadixContextMenu.Portal>\n );\n});\n\nconst Item = React.forwardRef(function Item({ className, inset, ...props }, ref) {\n return <RadixContextMenu.Item ref={ref} className={cn(itemClass, inset && \"pl-8\", className)} {...props} />;\n});\n\nconst CheckboxItem = React.forwardRef(function CheckboxItem({ className, children, ...props }, ref) {\n return (\n <RadixContextMenu.CheckboxItem ref={ref} className={cn(itemClass, \"pl-8\", className)} {...props}>\n <RadixContextMenu.ItemIndicator className=\"absolute left-2.5 inline-flex items-center\">\n <Check size={14} className=\"text-accent\" />\n </RadixContextMenu.ItemIndicator>\n {children}\n </RadixContextMenu.CheckboxItem>\n );\n});\n\nconst RadioItem = React.forwardRef(function RadioItem({ className, children, ...props }, ref) {\n return (\n <RadixContextMenu.RadioItem ref={ref} className={cn(itemClass, \"pl-8\", className)} {...props}>\n <RadixContextMenu.ItemIndicator className=\"absolute left-2.5 inline-flex items-center\">\n <Circle size={8} className=\"fill-accent text-accent\" />\n </RadixContextMenu.ItemIndicator>\n {children}\n </RadixContextMenu.RadioItem>\n );\n});\n\nconst Label = React.forwardRef(function Label({ className, inset, ...props }, ref) {\n return (\n <RadixContextMenu.Label\n ref={ref}\n className={cn(\"px-2 py-1.5 text-xs font-semibold text-text-muted\", inset && \"pl-8\", className)}\n {...props}\n />\n );\n});\n\nconst Separator = React.forwardRef(function Separator({ className, ...props }, ref) {\n return <RadixContextMenu.Separator ref={ref} className={cn(\"my-1 h-px bg-border-default\", className)} {...props} />;\n});\n\nconst Shortcut = React.forwardRef(function Shortcut({ className, ...props }, ref) {\n return <span ref={ref} className={cn(\"ml-auto pl-4 text-xs tracking-widest text-text-muted\", className)} {...props} />;\n});\n\nconst SubTrigger = React.forwardRef(function SubTrigger({ className, inset, children, ...props }, ref) {\n return (\n <RadixContextMenu.SubTrigger\n ref={ref}\n className={cn(itemClass, \"data-[state=open]:bg-bg-surface\", inset && \"pl-8\", className)}\n {...props}\n >\n {children}\n <ChevronRight size={14} className=\"ml-auto text-text-muted\" />\n </RadixContextMenu.SubTrigger>\n );\n});\n\nconst SubContent = React.forwardRef(function SubContent({ className, ...props }, ref) {\n return (\n <RadixContextMenu.Portal>\n <RadixContextMenu.SubContent ref={ref} className={cn(contentClass, className)} {...props} />\n </RadixContextMenu.Portal>\n );\n});\n\nexport const ContextMenu = {\n Root: RadixContextMenu.Root,\n Trigger: RadixContextMenu.Trigger,\n Content,\n Item,\n CheckboxItem,\n RadioGroup: RadixContextMenu.RadioGroup,\n RadioItem,\n Label,\n Separator,\n Shortcut,\n Group: RadixContextMenu.Group,\n Sub: RadixContextMenu.Sub,\n SubTrigger,\n SubContent,\n};\n"],"mappings":"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","names":["Content","Item","CheckboxItem","RadioItem","Label","Separator","Shortcut","SubTrigger","SubContent"]}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
|
+
import {
|
|
3
|
+
disabledClass
|
|
4
|
+
} from "./chunk-LDABSX4U.js";
|
|
2
5
|
import {
|
|
3
6
|
cn
|
|
4
7
|
} from "./chunk-74GQ35MJ.js";
|
|
@@ -66,7 +69,7 @@ var Option = React.forwardRef(function Option2({ selected = false, disabled = fa
|
|
|
66
69
|
className: cn(
|
|
67
70
|
"inline-flex items-center gap-1.5 rounded-full border px-3 py-1.5 text-sm transition-colors",
|
|
68
71
|
"focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]",
|
|
69
|
-
|
|
72
|
+
disabledClass,
|
|
70
73
|
selected ? "border-accent bg-accent-100 font-medium text-accent-700" : "border-border-default bg-bg-page text-text-primary hover:bg-bg-surface",
|
|
71
74
|
className
|
|
72
75
|
),
|
|
@@ -83,4 +86,4 @@ var Questionnaire = { Root, Prompt, Options, Option };
|
|
|
83
86
|
export {
|
|
84
87
|
Questionnaire
|
|
85
88
|
};
|
|
86
|
-
//# sourceMappingURL=chunk-
|
|
89
|
+
//# sourceMappingURL=chunk-YPW3ZNNH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/questionnaire/Questionnaire.jsx"],"sourcesContent":["import React, { createContext, useContext, useId } from \"react\";\nimport { Check } from \"@tlglobal/icons\";\nimport { cn } from \"../../lib/cn.js\";\nimport { disabledClass } from \"../../lib/disabled.js\";\n\nconst QuestionnaireContext = createContext(null);\n\nfunction useQuestionnaire() {\n const context = useContext(QuestionnaireContext);\n if (!context) throw new Error(\"Questionnaire parts must be used within Questionnaire.Root\");\n return context;\n}\n\n/*\n * The suggested-replies strip an assistant offers under a message. `multiple` decides both the\n * selection semantics and the ARIA contract: a single-select set is a radiogroup, a multi-select\n * set is a plain group of toggle buttons. Getting that wrong is the difference between a screen\n * reader saying \"1 of 4\" and saying nothing useful at all.\n */\nfunction Root({ multiple = false, className, children, ...props }) {\n const promptId = useId();\n return (\n <QuestionnaireContext.Provider value={{ multiple, promptId }}>\n <div\n data-slot=\"questionnaire\"\n className={cn(\"flex flex-col gap-2 font-sans\", className)}\n {...props}\n >\n {children}\n </div>\n </QuestionnaireContext.Provider>\n );\n}\n\nfunction Prompt({ className, ...props }) {\n const { promptId } = useQuestionnaire();\n return (\n <p\n id={promptId}\n data-slot=\"questionnaire-prompt\"\n className={cn(\"text-sm text-text-secondary\", className)}\n {...props}\n />\n );\n}\n\nfunction Options({ className, ...props }) {\n const { multiple, promptId } = useQuestionnaire();\n return (\n <div\n role={multiple ? \"group\" : \"radiogroup\"}\n aria-labelledby={promptId}\n data-slot=\"questionnaire-options\"\n className={cn(\"flex flex-wrap gap-2\", className)}\n {...props}\n />\n );\n}\n\nconst Option = React.forwardRef(function Option(\n { selected = false, disabled = false, className, children, ...props },\n ref,\n) {\n const { multiple } = useQuestionnaire();\n\n return (\n <button\n ref={ref}\n type=\"button\"\n disabled={disabled}\n role={multiple ? undefined : \"radio\"}\n // A multi-select chip is a toggle button (aria-pressed); a single-select one is a radio\n // (aria-checked). Setting both, or the wrong one, makes the state unannounceable.\n aria-pressed={multiple ? selected : undefined}\n aria-checked={multiple ? undefined : selected}\n data-slot=\"questionnaire-option\"\n data-selected={selected || undefined}\n className={cn(\n \"inline-flex items-center gap-1.5 rounded-full border px-3 py-1.5 text-sm transition-colors\",\n \"focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]\",\n disabledClass,\n selected\n ? \"border-accent bg-accent-100 font-medium text-accent-700\"\n : \"border-border-default bg-bg-page text-text-primary hover:bg-bg-surface\",\n className,\n )}\n {...props}\n >\n {selected && <Check size={14} className=\"shrink-0\" />}\n {children}\n </button>\n );\n});\n\nexport const Questionnaire = { Root, Prompt, Options, Option };\n"],"mappings":";;;;;;;;;AAAA,OAAO,SAAS,eAAe,YAAY,aAAa;AACxD,SAAS,aAAa;AAsBhB,cA2CF,YA3CE;AAlBN,IAAM,uBAAuB,cAAc,IAAI;AAE/C,SAAS,mBAAmB;AAC1B,QAAM,UAAU,WAAW,oBAAoB;AAC/C,MAAI,CAAC,QAAS,OAAM,IAAI,MAAM,4DAA4D;AAC1F,SAAO;AACT;AAQA,SAAS,KAAK,EAAE,WAAW,OAAO,WAAW,UAAU,GAAG,MAAM,GAAG;AACjE,QAAM,WAAW,MAAM;AACvB,SACE,oBAAC,qBAAqB,UAArB,EAA8B,OAAO,EAAE,UAAU,SAAS,GACzD;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,iCAAiC,SAAS;AAAA,MACvD,GAAG;AAAA,MAEH;AAAA;AAAA,EACH,GACF;AAEJ;AAEA,SAAS,OAAO,EAAE,WAAW,GAAG,MAAM,GAAG;AACvC,QAAM,EAAE,SAAS,IAAI,iBAAiB;AACtC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,IAAI;AAAA,MACJ,aAAU;AAAA,MACV,WAAW,GAAG,+BAA+B,SAAS;AAAA,MACrD,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,QAAQ,EAAE,WAAW,GAAG,MAAM,GAAG;AACxC,QAAM,EAAE,UAAU,SAAS,IAAI,iBAAiB;AAChD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM,WAAW,UAAU;AAAA,MAC3B,mBAAiB;AAAA,MACjB,aAAU;AAAA,MACV,WAAW,GAAG,wBAAwB,SAAS;AAAA,MAC9C,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,IAAM,SAAS,MAAM,WAAW,SAASA,QACvC,EAAE,WAAW,OAAO,WAAW,OAAO,WAAW,UAAU,GAAG,MAAM,GACpE,KACA;AACA,QAAM,EAAE,SAAS,IAAI,iBAAiB;AAEtC,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,MAAK;AAAA,MACL;AAAA,MACA,MAAM,WAAW,SAAY;AAAA,MAG7B,gBAAc,WAAW,WAAW;AAAA,MACpC,gBAAc,WAAW,SAAY;AAAA,MACrC,aAAU;AAAA,MACV,iBAAe,YAAY;AAAA,MAC3B,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA,WACI,4DACA;AAAA,QACJ;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA,oBAAY,oBAAC,SAAM,MAAM,IAAI,WAAU,YAAW;AAAA,QAClD;AAAA;AAAA;AAAA,EACH;AAEJ,CAAC;AAEM,IAAM,gBAAgB,EAAE,MAAM,QAAQ,SAAS,OAAO;","names":["Option"]}
|
|
@@ -4,14 +4,16 @@ import {
|
|
|
4
4
|
} from "./chunk-74GQ35MJ.js";
|
|
5
5
|
|
|
6
6
|
// src/components/drawer/Drawer.jsx
|
|
7
|
+
import React from "react";
|
|
7
8
|
import { Drawer as VaulDrawer } from "vaul";
|
|
8
9
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
-
|
|
10
|
+
var Content = React.forwardRef(function Content2({ className, children, ...props }, ref) {
|
|
10
11
|
return /* @__PURE__ */ jsxs(VaulDrawer.Portal, { children: [
|
|
11
12
|
/* @__PURE__ */ jsx(VaulDrawer.Overlay, { className: "fixed inset-0 z-[100] bg-neutral-900/40" }),
|
|
12
13
|
/* @__PURE__ */ jsxs(
|
|
13
14
|
VaulDrawer.Content,
|
|
14
15
|
{
|
|
16
|
+
ref,
|
|
15
17
|
className: cn(
|
|
16
18
|
"fixed inset-x-0 bottom-0 z-[100] mt-24 flex max-h-[85vh] flex-col rounded-t-lg border border-border-default bg-bg-page shadow-md",
|
|
17
19
|
className
|
|
@@ -24,22 +26,23 @@ function Content({ className, children, ...props }) {
|
|
|
24
26
|
}
|
|
25
27
|
)
|
|
26
28
|
] });
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
return /* @__PURE__ */ jsx(VaulDrawer.Title, { className: cn("text-lg font-bold text-text-primary", className), ...props });
|
|
30
|
-
}
|
|
31
|
-
|
|
29
|
+
});
|
|
30
|
+
var Title = React.forwardRef(function Title2({ className, ...props }, ref) {
|
|
31
|
+
return /* @__PURE__ */ jsx(VaulDrawer.Title, { ref, className: cn("text-lg font-bold text-text-primary", className), ...props });
|
|
32
|
+
});
|
|
33
|
+
var Description = React.forwardRef(function Description2({ className, ...props }, ref) {
|
|
32
34
|
return /* @__PURE__ */ jsx(
|
|
33
35
|
VaulDrawer.Description,
|
|
34
36
|
{
|
|
37
|
+
ref,
|
|
35
38
|
className: cn("mt-2 text-base leading-relaxed text-text-secondary", className),
|
|
36
39
|
...props
|
|
37
40
|
}
|
|
38
41
|
);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return /* @__PURE__ */ jsx("div", { className: cn("mt-6 flex justify-end gap-2.5", className), ...props });
|
|
42
|
-
}
|
|
42
|
+
});
|
|
43
|
+
var Footer = React.forwardRef(function Footer2({ className, ...props }, ref) {
|
|
44
|
+
return /* @__PURE__ */ jsx("div", { ref, className: cn("mt-6 flex justify-end gap-2.5", className), ...props });
|
|
45
|
+
});
|
|
43
46
|
var Drawer = {
|
|
44
47
|
Root: VaulDrawer.Root,
|
|
45
48
|
Trigger: VaulDrawer.Trigger,
|
|
@@ -53,4 +56,4 @@ var Drawer = {
|
|
|
53
56
|
export {
|
|
54
57
|
Drawer
|
|
55
58
|
};
|
|
56
|
-
//# sourceMappingURL=chunk-
|
|
59
|
+
//# sourceMappingURL=chunk-YY7LSY6F.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/drawer/Drawer.jsx"],"sourcesContent":["import React from \"react\";\nimport { Drawer as VaulDrawer } from \"vaul\";\nimport { cn } from \"../../lib/cn.js\";\n\nconst Content = React.forwardRef(function Content({ className, children, ...props }, ref) {\n return (\n <VaulDrawer.Portal>\n <VaulDrawer.Overlay className=\"fixed inset-0 z-[100] bg-neutral-900/40\" />\n <VaulDrawer.Content\n ref={ref}\n className={cn(\n \"fixed inset-x-0 bottom-0 z-[100] mt-24 flex max-h-[85vh] flex-col rounded-t-lg border border-border-default bg-bg-page shadow-md\",\n className,\n )}\n {...props}\n >\n <VaulDrawer.Handle className=\"mx-auto mt-3 h-1.5 w-10 shrink-0 rounded-full bg-border-strong\" />\n <div className=\"flex-1 overflow-auto p-6\">{children}</div>\n </VaulDrawer.Content>\n </VaulDrawer.Portal>\n );\n});\n\nconst Title = React.forwardRef(function Title({ className, ...props }, ref) {\n return <VaulDrawer.Title ref={ref} className={cn(\"text-lg font-bold text-text-primary\", className)} {...props} />;\n});\n\nconst Description = React.forwardRef(function Description({ className, ...props }, ref) {\n return (\n <VaulDrawer.Description\n ref={ref}\n className={cn(\"mt-2 text-base leading-relaxed text-text-secondary\", className)}\n {...props}\n />\n );\n});\n\nconst Footer = React.forwardRef(function Footer({ className, ...props }, ref) {\n return <div ref={ref} className={cn(\"mt-6 flex justify-end gap-2.5\", className)} {...props} />;\n});\n\nexport const Drawer = {\n Root: VaulDrawer.Root,\n Trigger: VaulDrawer.Trigger,\n Close: VaulDrawer.Close,\n Content,\n Title,\n Description,\n Footer,\n};\n"],"mappings":";;;;;;AAAA,OAAO,WAAW;AAClB,SAAS,UAAU,kBAAkB;AAM/B,cACA,YADA;AAHN,IAAM,UAAU,MAAM,WAAW,SAASA,SAAQ,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,KAAK;AACxF,SACE,qBAAC,WAAW,QAAX,EACC;AAAA,wBAAC,WAAW,SAAX,EAAmB,WAAU,2CAA0C;AAAA,IACxE;AAAA,MAAC,WAAW;AAAA,MAAX;AAAA,QACC;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA;AAAA,QACF;AAAA,QACC,GAAG;AAAA,QAEJ;AAAA,8BAAC,WAAW,QAAX,EAAkB,WAAU,kEAAiE;AAAA,UAC9F,oBAAC,SAAI,WAAU,4BAA4B,UAAS;AAAA;AAAA;AAAA,IACtD;AAAA,KACF;AAEJ,CAAC;AAED,IAAM,QAAQ,MAAM,WAAW,SAASC,OAAM,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK;AAC1E,SAAO,oBAAC,WAAW,OAAX,EAAiB,KAAU,WAAW,GAAG,uCAAuC,SAAS,GAAI,GAAG,OAAO;AACjH,CAAC;AAED,IAAM,cAAc,MAAM,WAAW,SAASC,aAAY,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK;AACtF,SACE;AAAA,IAAC,WAAW;AAAA,IAAX;AAAA,MACC;AAAA,MACA,WAAW,GAAG,sDAAsD,SAAS;AAAA,MAC5E,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AAED,IAAM,SAAS,MAAM,WAAW,SAASC,QAAO,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK;AAC5E,SAAO,oBAAC,SAAI,KAAU,WAAW,GAAG,iCAAiC,SAAS,GAAI,GAAG,OAAO;AAC9F,CAAC;AAEM,IAAM,SAAS;AAAA,EACpB,MAAM,WAAW;AAAA,EACjB,SAAS,WAAW;AAAA,EACpB,OAAO,WAAW;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;","names":["Content","Title","Description","Footer"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});'use client';
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }'use client';
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
var _chunk6K77FYPPcjs = require('./chunk-6K77FYPP.cjs');
|
|
@@ -10,23 +10,26 @@ var _chunkRL3XVDMFcjs = require('./chunk-RL3XVDMF.cjs');
|
|
|
10
10
|
var _chunkNSTYHMFWcjs = require('./chunk-NSTYHMFW.cjs');
|
|
11
11
|
|
|
12
12
|
// src/components/attachment/Attachment.jsx
|
|
13
|
+
var _react = require('react'); var _react2 = _interopRequireDefault(_react);
|
|
13
14
|
var _icons = require('@tlglobal/icons');
|
|
14
15
|
var _jsxruntime = require('react/jsx-runtime');
|
|
15
|
-
|
|
16
|
+
var List = _react2.default.forwardRef(function List2({ className, ...props }, ref) {
|
|
16
17
|
const direction = _chunkRL3XVDMFcjs.useDirection.call(void 0, );
|
|
17
18
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
18
19
|
"ul",
|
|
19
20
|
{
|
|
21
|
+
ref,
|
|
20
22
|
"data-slot": "attachment-list",
|
|
21
23
|
className: _chunkNSTYHMFWcjs.cn.call(void 0, "flex flex-wrap gap-2", direction === "outgoing" && "justify-end", className),
|
|
22
24
|
...props
|
|
23
25
|
}
|
|
24
26
|
);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
+
});
|
|
28
|
+
var Root = _react2.default.forwardRef(function Root2({ uploading = false, className, children, ...props }, ref) {
|
|
27
29
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
28
30
|
"li",
|
|
29
31
|
{
|
|
32
|
+
ref,
|
|
30
33
|
"data-slot": "attachment",
|
|
31
34
|
"data-uploading": uploading || void 0,
|
|
32
35
|
className: _chunkNSTYHMFWcjs.cn.call(void 0,
|
|
@@ -42,11 +45,12 @@ function Root({ uploading = false, className, children, ...props }) {
|
|
|
42
45
|
]
|
|
43
46
|
}
|
|
44
47
|
);
|
|
45
|
-
}
|
|
46
|
-
|
|
48
|
+
});
|
|
49
|
+
var Preview = _react2.default.forwardRef(function Preview2({ src, alt = "", className, ...props }, ref) {
|
|
47
50
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
48
51
|
"img",
|
|
49
52
|
{
|
|
53
|
+
ref,
|
|
50
54
|
src,
|
|
51
55
|
alt,
|
|
52
56
|
"data-slot": "attachment-preview",
|
|
@@ -54,11 +58,12 @@ function Preview({ src, alt = "", className, ...props }) {
|
|
|
54
58
|
...props
|
|
55
59
|
}
|
|
56
60
|
);
|
|
57
|
-
}
|
|
58
|
-
|
|
61
|
+
});
|
|
62
|
+
var Icon = _react2.default.forwardRef(function Icon2({ className, ...props }, ref) {
|
|
59
63
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
60
64
|
"span",
|
|
61
65
|
{
|
|
66
|
+
ref,
|
|
62
67
|
"data-slot": "attachment-icon",
|
|
63
68
|
className: _chunkNSTYHMFWcjs.cn.call(void 0,
|
|
64
69
|
"flex h-9 w-9 shrink-0 items-center justify-center rounded-md bg-bg-surface text-text-secondary",
|
|
@@ -68,27 +73,29 @@ function Icon({ className, ...props }) {
|
|
|
68
73
|
...props
|
|
69
74
|
}
|
|
70
75
|
);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-slot": "attachment-info", className: _chunkNSTYHMFWcjs.cn.call(void 0, "flex min-w-0 flex-col", className), ...props });
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
+
});
|
|
77
|
+
var Info = _react2.default.forwardRef(function Info2({ className, ...props }, ref) {
|
|
78
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, "data-slot": "attachment-info", className: _chunkNSTYHMFWcjs.cn.call(void 0, "flex min-w-0 flex-col", className), ...props });
|
|
79
|
+
});
|
|
80
|
+
var Name = _react2.default.forwardRef(function Name2({ className, ...props }, ref) {
|
|
76
81
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
77
82
|
"span",
|
|
78
83
|
{
|
|
84
|
+
ref,
|
|
79
85
|
"data-slot": "attachment-name",
|
|
80
86
|
className: _chunkNSTYHMFWcjs.cn.call(void 0, "truncate text-xs font-medium text-text-primary", className),
|
|
81
87
|
...props
|
|
82
88
|
}
|
|
83
89
|
);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "data-slot": "attachment-meta", className: _chunkNSTYHMFWcjs.cn.call(void 0, "text-xs text-text-muted", className), ...props });
|
|
87
|
-
}
|
|
88
|
-
|
|
90
|
+
});
|
|
91
|
+
var Meta = _react2.default.forwardRef(function Meta2({ className, ...props }, ref) {
|
|
92
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { ref, "data-slot": "attachment-meta", className: _chunkNSTYHMFWcjs.cn.call(void 0, "text-xs text-text-muted", className), ...props });
|
|
93
|
+
});
|
|
94
|
+
var Remove = _react2.default.forwardRef(function Remove2({ className, "aria-label": ariaLabel = "Remove attachment", ...props }, ref) {
|
|
89
95
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
90
96
|
"button",
|
|
91
97
|
{
|
|
98
|
+
ref,
|
|
92
99
|
type: "button",
|
|
93
100
|
"aria-label": ariaLabel,
|
|
94
101
|
"data-slot": "attachment-remove",
|
|
@@ -103,10 +110,10 @@ function Remove({ className, "aria-label": ariaLabel = "Remove attachment", ...p
|
|
|
103
110
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _icons.X, { size: 12 })
|
|
104
111
|
}
|
|
105
112
|
);
|
|
106
|
-
}
|
|
113
|
+
});
|
|
107
114
|
var Attachment = { Root, List, Preview, Icon, Info, Name, Meta, Remove };
|
|
108
115
|
|
|
109
116
|
|
|
110
117
|
|
|
111
118
|
exports.Attachment = Attachment;
|
|
112
|
-
//# sourceMappingURL=chunk-
|
|
119
|
+
//# sourceMappingURL=chunk-Z2LS4QUV.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/Atoms/Atoms/packages/ui/dist/chunk-Z2LS4QUV.cjs","../src/components/attachment/Attachment.jsx"],"names":["List","Root","Preview","Icon","Info","Name","Meta","Remove"],"mappings":"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","file":"/home/runner/work/Atoms/Atoms/packages/ui/dist/chunk-Z2LS4QUV.cjs","sourcesContent":[null,"import React from \"react\";\nimport { X } from \"@tlglobal/icons\";\nimport { cn } from \"../../lib/cn.js\";\nimport { Spinner } from \"../spinner/Spinner.jsx\";\nimport { useDirection } from \"../direction/Direction.jsx\";\n\nconst List = React.forwardRef(function List({ className, ...props }, ref) {\n const direction = useDirection();\n return (\n <ul\n ref={ref}\n data-slot=\"attachment-list\"\n className={cn(\"flex flex-wrap gap-2\", direction === \"outgoing\" && \"justify-end\", className)}\n {...props}\n />\n );\n});\n\n/*\n * Rendered as an <li> because attachments almost always arrive as a set — Attachment.List is a\n * <ul>, and a screen reader announcing \"list, 3 items\" is the single most useful thing here.\n * Standalone use outside a List is rare enough to be worth the trade.\n */\nconst Root = React.forwardRef(function Root({ uploading = false, className, children, ...props }, ref) {\n return (\n <li\n ref={ref}\n data-slot=\"attachment\"\n data-uploading={uploading || undefined}\n className={cn(\n \"group/attachment relative flex max-w-[16rem] items-center gap-2 rounded-lg border border-border-default\",\n \"bg-bg-page px-2.5 py-2 font-sans transition-colors hover:bg-bg-surface\",\n uploading && \"opacity-70\",\n className,\n )}\n {...props}\n >\n {children}\n {uploading && <Spinner size={14} className=\"shrink-0\" />}\n </li>\n );\n});\n\nconst Preview = React.forwardRef(function Preview({ src, alt = \"\", className, ...props }, ref) {\n return (\n <img\n ref={ref}\n src={src}\n alt={alt}\n data-slot=\"attachment-preview\"\n className={cn(\"h-9 w-9 shrink-0 rounded-md object-cover\", className)}\n {...props}\n />\n );\n});\n\nconst Icon = React.forwardRef(function Icon({ className, ...props }, ref) {\n return (\n <span\n ref={ref}\n data-slot=\"attachment-icon\"\n className={cn(\n \"flex h-9 w-9 shrink-0 items-center justify-center rounded-md bg-bg-surface text-text-secondary\",\n \"[&>svg]:h-4 [&>svg]:w-4\",\n className,\n )}\n {...props}\n />\n );\n});\n\nconst Info = React.forwardRef(function Info({ className, ...props }, ref) {\n return <div ref={ref} data-slot=\"attachment-info\" className={cn(\"flex min-w-0 flex-col\", className)} {...props} />;\n});\n\nconst Name = React.forwardRef(function Name({ className, ...props }, ref) {\n return (\n <span\n ref={ref}\n data-slot=\"attachment-name\"\n className={cn(\"truncate text-xs font-medium text-text-primary\", className)}\n {...props}\n />\n );\n});\n\nconst Meta = React.forwardRef(function Meta({ className, ...props }, ref) {\n return <span ref={ref} data-slot=\"attachment-meta\" className={cn(\"text-xs text-text-muted\", className)} {...props} />;\n});\n\n/*\n * Always in the DOM and always focusable — only its opacity changes on hover. Hiding it with\n * `hidden` or conditional rendering would make removal keyboard-unreachable, which is the usual way\n * this pattern goes wrong.\n */\nconst Remove = React.forwardRef(function Remove({ className, \"aria-label\": ariaLabel = \"Remove attachment\", ...props }, ref) {\n return (\n <button\n ref={ref}\n type=\"button\"\n aria-label={ariaLabel}\n data-slot=\"attachment-remove\"\n className={cn(\n \"ml-auto flex h-5 w-5 shrink-0 items-center justify-center rounded-md text-text-muted\",\n \"opacity-0 transition-opacity hover:bg-bg-surface-hover hover:text-text-primary\",\n \"focus-visible:opacity-100 focus-visible:outline-none focus-visible:shadow-[var(--shadow-focus-ring)]\",\n \"group-hover/attachment:opacity-100\",\n className,\n )}\n {...props}\n >\n <X size={12} />\n </button>\n );\n});\n\nexport const Attachment = { Root, List, Preview, Icon, Info, Name, Meta, Remove };\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});'use client';
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }'use client';
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
@@ -11,12 +11,14 @@ var _chunkRHIHSGAKcjs = require('./chunk-RHIHSGAK.cjs');
|
|
|
11
11
|
var _chunkNSTYHMFWcjs = require('./chunk-NSTYHMFW.cjs');
|
|
12
12
|
|
|
13
13
|
// src/components/message/Message.jsx
|
|
14
|
+
var _react = require('react'); var _react2 = _interopRequireDefault(_react);
|
|
14
15
|
var _jsxruntime = require('react/jsx-runtime');
|
|
15
|
-
|
|
16
|
+
var Root = _react2.default.forwardRef(function Root2({ direction, className, children, ...props }, ref) {
|
|
16
17
|
const resolvedDirection = _chunkRL3XVDMFcjs.useDirection.call(void 0, direction);
|
|
17
18
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRL3XVDMFcjs.Direction.Provider, { value: resolvedDirection, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
18
19
|
"div",
|
|
19
20
|
{
|
|
21
|
+
ref,
|
|
20
22
|
"data-slot": "message",
|
|
21
23
|
"data-direction": resolvedDirection,
|
|
22
24
|
className: _chunkNSTYHMFWcjs.cn.call(void 0,
|
|
@@ -28,15 +30,16 @@ function Root({ direction, className, children, ...props }) {
|
|
|
28
30
|
children
|
|
29
31
|
}
|
|
30
32
|
) });
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRHIHSGAKcjs.Avatar, { size: "sm", className: _chunkNSTYHMFWcjs.cn.call(void 0, "mt-0.5 shrink-0", className), ...props });
|
|
34
|
-
}
|
|
35
|
-
|
|
33
|
+
});
|
|
34
|
+
var Avatar2 = _react2.default.forwardRef(function Avatar3({ className, ...props }, ref) {
|
|
35
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkRHIHSGAKcjs.Avatar, { ref, size: "sm", className: _chunkNSTYHMFWcjs.cn.call(void 0, "mt-0.5 shrink-0", className), ...props });
|
|
36
|
+
});
|
|
37
|
+
var Body = _react2.default.forwardRef(function Body2({ className, ...props }, ref) {
|
|
36
38
|
const direction = _chunkRL3XVDMFcjs.useDirection.call(void 0, );
|
|
37
39
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
38
40
|
"div",
|
|
39
41
|
{
|
|
42
|
+
ref,
|
|
40
43
|
"data-slot": "message-body",
|
|
41
44
|
className: _chunkNSTYHMFWcjs.cn.call(void 0,
|
|
42
45
|
"flex min-w-0 flex-1 flex-col gap-1",
|
|
@@ -46,30 +49,32 @@ function Body({ className, ...props }) {
|
|
|
46
49
|
...props
|
|
47
50
|
}
|
|
48
51
|
);
|
|
49
|
-
}
|
|
50
|
-
|
|
52
|
+
});
|
|
53
|
+
var Header = _react2.default.forwardRef(function Header2({ className, ...props }, ref) {
|
|
51
54
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
52
55
|
"div",
|
|
53
56
|
{
|
|
57
|
+
ref,
|
|
54
58
|
"data-slot": "message-header",
|
|
55
59
|
className: _chunkNSTYHMFWcjs.cn.call(void 0, "flex items-baseline gap-2 text-xs text-text-secondary", className),
|
|
56
60
|
...props
|
|
57
61
|
}
|
|
58
62
|
);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "data-slot": "message-author", className: _chunkNSTYHMFWcjs.cn.call(void 0, "font-semibold text-text-primary", className), ...props });
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "time", { "data-slot": "message-time", className: _chunkNSTYHMFWcjs.cn.call(void 0, "tabular-nums text-text-muted", className), ...props });
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-slot": "message-content", className: _chunkNSTYHMFWcjs.cn.call(void 0, "flex flex-col gap-1.5", className), ...props });
|
|
68
|
-
}
|
|
69
|
-
|
|
63
|
+
});
|
|
64
|
+
var Author = _react2.default.forwardRef(function Author2({ className, ...props }, ref) {
|
|
65
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { ref, "data-slot": "message-author", className: _chunkNSTYHMFWcjs.cn.call(void 0, "font-semibold text-text-primary", className), ...props });
|
|
66
|
+
});
|
|
67
|
+
var Time = _react2.default.forwardRef(function Time2({ className, ...props }, ref) {
|
|
68
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "time", { ref, "data-slot": "message-time", className: _chunkNSTYHMFWcjs.cn.call(void 0, "tabular-nums text-text-muted", className), ...props });
|
|
69
|
+
});
|
|
70
|
+
var Content = _react2.default.forwardRef(function Content2({ className, ...props }, ref) {
|
|
71
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, "data-slot": "message-content", className: _chunkNSTYHMFWcjs.cn.call(void 0, "flex flex-col gap-1.5", className), ...props });
|
|
72
|
+
});
|
|
73
|
+
var Actions = _react2.default.forwardRef(function Actions2({ className, ...props }, ref) {
|
|
70
74
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
71
75
|
"div",
|
|
72
76
|
{
|
|
77
|
+
ref,
|
|
73
78
|
"data-slot": "message-actions",
|
|
74
79
|
className: _chunkNSTYHMFWcjs.cn.call(void 0,
|
|
75
80
|
"flex items-center gap-0.5 opacity-0 transition-opacity",
|
|
@@ -79,13 +84,13 @@ function Actions({ className, ...props }) {
|
|
|
79
84
|
...props
|
|
80
85
|
}
|
|
81
86
|
);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-slot": "message-footer", className: _chunkNSTYHMFWcjs.cn.call(void 0, "text-xs text-text-muted", className), ...props });
|
|
85
|
-
}
|
|
87
|
+
});
|
|
88
|
+
var Footer = _react2.default.forwardRef(function Footer2({ className, ...props }, ref) {
|
|
89
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, "data-slot": "message-footer", className: _chunkNSTYHMFWcjs.cn.call(void 0, "text-xs text-text-muted", className), ...props });
|
|
90
|
+
});
|
|
86
91
|
var Message = { Root, Avatar: Avatar2, Body, Header, Author, Time, Content, Actions, Footer };
|
|
87
92
|
|
|
88
93
|
|
|
89
94
|
|
|
90
95
|
exports.Message = Message;
|
|
91
|
-
//# sourceMappingURL=chunk-
|
|
96
|
+
//# sourceMappingURL=chunk-ZSPEIPFP.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/Atoms/Atoms/packages/ui/dist/chunk-ZSPEIPFP.cjs","../src/components/message/Message.jsx"],"names":["Root","Avatar","Body","Header","Author","Time","Content","Actions","Footer"],"mappings":"AAAA,qLAAY;AACZ;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACZA,4EAAkB;AAeZ,+CAAA;AALN,IAAM,KAAA,EAAO,eAAA,CAAM,UAAA,CAAW,SAASA,KAAAA,CAAK,EAAE,SAAA,EAAW,SAAA,EAAW,QAAA,EAAU,GAAG,MAAM,CAAA,EAAG,GAAA,EAAK;AAC7F,EAAA,MAAM,kBAAA,EAAoB,4CAAA,SAAsB,CAAA;AAEhD,EAAA,uBACE,6BAAA,2BAAC,CAAU,QAAA,EAAV,EAAmB,KAAA,EAAO,iBAAA,EACzB,QAAA,kBAAA,6BAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,SAAA;AAAA,MACV,gBAAA,EAAgB,iBAAA;AAAA,MAChB,SAAA,EAAW,kCAAA;AAAA,QACT,yDAAA;AAAA,QACA,kBAAA,IAAsB,WAAA,GAAc,kBAAA;AAAA,QACpC;AAAA,MACF,CAAA;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA,IAAA;AAAA,EACH,EAAA,CACF,CAAA;AAEJ,CAAC,CAAA;AAED,IAAMC,QAAAA,EAAS,eAAA,CAAM,UAAA,CAAW,SAASA,OAAAA,CAAO,EAAE,SAAA,EAAW,GAAG,MAAM,CAAA,EAAG,GAAA,EAAK;AAC5E,EAAA,uBAAO,6BAAA,wBAAC,EAAA,EAAW,GAAA,EAAU,IAAA,EAAK,IAAA,EAAK,SAAA,EAAW,kCAAA,iBAAG,EAAmB,SAAS,CAAA,EAAI,GAAG,MAAA,CAAO,CAAA;AACjG,CAAC,CAAA;AAID,IAAM,KAAA,EAAO,eAAA,CAAM,UAAA,CAAW,SAASC,KAAAA,CAAK,EAAE,SAAA,EAAW,GAAG,MAAM,CAAA,EAAG,GAAA,EAAK;AACxE,EAAA,MAAM,UAAA,EAAY,4CAAA,CAAa;AAC/B,EAAA,uBACE,6BAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,cAAA;AAAA,MACV,SAAA,EAAW,kCAAA;AAAA,QACT,oCAAA;AAAA,QACA,UAAA,IAAc,WAAA,GAAc,WAAA;AAAA,QAC5B;AAAA,MACF,CAAA;AAAA,MACC,GAAG;AAAA,IAAA;AAAA,EACN,CAAA;AAEJ,CAAC,CAAA;AAED,IAAM,OAAA,EAAS,eAAA,CAAM,UAAA,CAAW,SAASC,OAAAA,CAAO,EAAE,SAAA,EAAW,GAAG,MAAM,CAAA,EAAG,GAAA,EAAK;AAC5E,EAAA,uBACE,6BAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,gBAAA;AAAA,MACV,SAAA,EAAW,kCAAA,uDAAG,EAAyD,SAAS,CAAA;AAAA,MAC/E,GAAG;AAAA,IAAA;AAAA,EACN,CAAA;AAEJ,CAAC,CAAA;AAED,IAAM,OAAA,EAAS,eAAA,CAAM,UAAA,CAAW,SAASC,OAAAA,CAAO,EAAE,SAAA,EAAW,GAAG,MAAM,CAAA,EAAG,GAAA,EAAK;AAC5E,EAAA,uBACE,6BAAA,MAAC,EAAA,EAAK,GAAA,EAAU,WAAA,EAAU,gBAAA,EAAiB,SAAA,EAAW,kCAAA,iCAAG,EAAmC,SAAS,CAAA,EAAI,GAAG,MAAA,CAAO,CAAA;AAEvH,CAAC,CAAA;AAED,IAAM,KAAA,EAAO,eAAA,CAAM,UAAA,CAAW,SAASC,KAAAA,CAAK,EAAE,SAAA,EAAW,GAAG,MAAM,CAAA,EAAG,GAAA,EAAK;AACxE,EAAA,uBAAO,6BAAA,MAAC,EAAA,EAAK,GAAA,EAAU,WAAA,EAAU,cAAA,EAAe,SAAA,EAAW,kCAAA,8BAAG,EAAgC,SAAS,CAAA,EAAI,GAAG,MAAA,CAAO,CAAA;AACvH,CAAC,CAAA;AAED,IAAM,QAAA,EAAU,eAAA,CAAM,UAAA,CAAW,SAASC,QAAAA,CAAQ,EAAE,SAAA,EAAW,GAAG,MAAM,CAAA,EAAG,GAAA,EAAK;AAC9E,EAAA,uBAAO,6BAAA,KAAC,EAAA,EAAI,GAAA,EAAU,WAAA,EAAU,iBAAA,EAAkB,SAAA,EAAW,kCAAA,uBAAG,EAAyB,SAAS,CAAA,EAAI,GAAG,MAAA,CAAO,CAAA;AAClH,CAAC,CAAA;AAMD,IAAM,QAAA,EAAU,eAAA,CAAM,UAAA,CAAW,SAASC,QAAAA,CAAQ,EAAE,SAAA,EAAW,GAAG,MAAM,CAAA,EAAG,GAAA,EAAK;AAC9E,EAAA,uBACE,6BAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,iBAAA;AAAA,MACV,SAAA,EAAW,kCAAA;AAAA,QACT,wDAAA;AAAA,QACA,wEAAA;AAAA,QACA;AAAA,MACF,CAAA;AAAA,MACC,GAAG;AAAA,IAAA;AAAA,EACN,CAAA;AAEJ,CAAC,CAAA;AAED,IAAM,OAAA,EAAS,eAAA,CAAM,UAAA,CAAW,SAASC,OAAAA,CAAO,EAAE,SAAA,EAAW,GAAG,MAAM,CAAA,EAAG,GAAA,EAAK;AAC5E,EAAA,uBAAO,6BAAA,KAAC,EAAA,EAAI,GAAA,EAAU,WAAA,EAAU,gBAAA,EAAiB,SAAA,EAAW,kCAAA,yBAAG,EAA2B,SAAS,CAAA,EAAI,GAAG,MAAA,CAAO,CAAA;AACnH,CAAC,CAAA;AAEM,IAAM,QAAA,EAAU,EAAE,IAAA,EAAM,MAAA,EAAAP,OAAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAS,OAAA,EAAS,OAAO,CAAA;ADX5F;AACA;AACE;AACF,0BAAC","file":"/home/runner/work/Atoms/Atoms/packages/ui/dist/chunk-ZSPEIPFP.cjs","sourcesContent":[null,"import React from \"react\";\nimport { cn } from \"../../lib/cn.js\";\nimport { Avatar as BaseAvatar } from \"../avatar/Avatar.jsx\";\nimport { Direction, useDirection } from \"../direction/Direction.jsx\";\n\n/*\n * Root doubles as a Direction provider so a caller writes `<Message.Root direction=\"outgoing\">`\n * once and every part below it — including a Bubble or Attachment nested arbitrarily deep — lines\n * up without being told again.\n */\nconst Root = React.forwardRef(function Root({ direction, className, children, ...props }, ref) {\n const resolvedDirection = useDirection(direction);\n\n return (\n <Direction.Provider value={resolvedDirection}>\n <div\n ref={ref}\n data-slot=\"message\"\n data-direction={resolvedDirection}\n className={cn(\n \"group/message flex w-full items-start gap-2.5 font-sans\",\n resolvedDirection === \"outgoing\" && \"flex-row-reverse\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </Direction.Provider>\n );\n});\n\nconst Avatar = React.forwardRef(function Avatar({ className, ...props }, ref) {\n return <BaseAvatar ref={ref} size=\"sm\" className={cn(\"mt-0.5 shrink-0\", className)} {...props} />;\n});\n\n// min-w-0 is load-bearing: without it a long unbroken token in the bubble blows the flex row out\n// past the container instead of wrapping.\nconst Body = React.forwardRef(function Body({ className, ...props }, ref) {\n const direction = useDirection();\n return (\n <div\n ref={ref}\n data-slot=\"message-body\"\n className={cn(\n \"flex min-w-0 flex-1 flex-col gap-1\",\n direction === \"outgoing\" && \"items-end\",\n className,\n )}\n {...props}\n />\n );\n});\n\nconst Header = React.forwardRef(function Header({ className, ...props }, ref) {\n return (\n <div\n ref={ref}\n data-slot=\"message-header\"\n className={cn(\"flex items-baseline gap-2 text-xs text-text-secondary\", className)}\n {...props}\n />\n );\n});\n\nconst Author = React.forwardRef(function Author({ className, ...props }, ref) {\n return (\n <span ref={ref} data-slot=\"message-author\" className={cn(\"font-semibold text-text-primary\", className)} {...props} />\n );\n});\n\nconst Time = React.forwardRef(function Time({ className, ...props }, ref) {\n return <time ref={ref} data-slot=\"message-time\" className={cn(\"tabular-nums text-text-muted\", className)} {...props} />;\n});\n\nconst Content = React.forwardRef(function Content({ className, ...props }, ref) {\n return <div ref={ref} data-slot=\"message-content\" className={cn(\"flex flex-col gap-1.5\", className)} {...props} />;\n});\n\n/*\n * Hidden until the row is hovered or something inside it takes focus. The focus-within half is the\n * keyboard path — without it these buttons would be reachable by Tab but invisible while focused.\n */\nconst Actions = React.forwardRef(function Actions({ className, ...props }, ref) {\n return (\n <div\n ref={ref}\n data-slot=\"message-actions\"\n className={cn(\n \"flex items-center gap-0.5 opacity-0 transition-opacity\",\n \"group-hover/message:opacity-100 group-focus-within/message:opacity-100\",\n className,\n )}\n {...props}\n />\n );\n});\n\nconst Footer = React.forwardRef(function Footer({ className, ...props }, ref) {\n return <div ref={ref} data-slot=\"message-footer\" className={cn(\"text-xs text-text-muted\", className)} {...props} />;\n});\n\nexport const Message = { Root, Avatar, Body, Header, Author, Time, Content, Actions, Footer };\n"]}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
import type { ComponentPropsWithoutRef,
|
|
1
|
+
import type { ComponentPropsWithoutRef, ElementRef, ForwardRefExoticComponent, RefAttributes } from "react";
|
|
2
2
|
import { Accordion as RadixAccordion } from "radix-ui";
|
|
3
3
|
|
|
4
4
|
export declare const Accordion: {
|
|
5
5
|
Root: typeof RadixAccordion.Root;
|
|
6
|
-
Item:
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
Item: ForwardRefExoticComponent<
|
|
7
|
+
ComponentPropsWithoutRef<typeof RadixAccordion.Item> & RefAttributes<ElementRef<typeof RadixAccordion.Item>>
|
|
8
|
+
>;
|
|
9
|
+
Trigger: ForwardRefExoticComponent<
|
|
10
|
+
ComponentPropsWithoutRef<typeof RadixAccordion.Trigger> & RefAttributes<ElementRef<typeof RadixAccordion.Trigger>>
|
|
11
|
+
>;
|
|
12
|
+
Content: ForwardRefExoticComponent<
|
|
13
|
+
ComponentPropsWithoutRef<typeof RadixAccordion.Content> & RefAttributes<ElementRef<typeof RadixAccordion.Content>>
|
|
14
|
+
>;
|
|
9
15
|
};
|