@plasmicpkgs/plasmic-tabs 0.0.2 → 0.0.3
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/dist/plasmic-tabs.cjs.development.js +9 -9
- package/dist/plasmic-tabs.cjs.development.js.map +1 -1
- package/dist/plasmic-tabs.cjs.production.min.js +1 -1
- package/dist/plasmic-tabs.cjs.production.min.js.map +1 -1
- package/dist/plasmic-tabs.esm.js +9 -9
- package/dist/plasmic-tabs.esm.js.map +1 -1
- package/package.json +2 -2
|
@@ -75,7 +75,7 @@ function useTabsContext() {
|
|
|
75
75
|
|
|
76
76
|
var modulePath = "@plasmicpkgs/plasmic-tabs";
|
|
77
77
|
var TabsContainerMeta = {
|
|
78
|
-
name: "
|
|
78
|
+
name: "hostless-tabs-container",
|
|
79
79
|
displayName: "Tabs Container",
|
|
80
80
|
importName: "TabsContainer",
|
|
81
81
|
importPath: modulePath,
|
|
@@ -106,27 +106,27 @@ var TabsContainerMeta = {
|
|
|
106
106
|
type: "hbox",
|
|
107
107
|
children: [{
|
|
108
108
|
type: "component",
|
|
109
|
-
name: "
|
|
109
|
+
name: "hostless-tab-button",
|
|
110
110
|
props: {
|
|
111
111
|
tabKey: "tab1",
|
|
112
112
|
children: /*#__PURE__*/defaultButtonChildren("Tab 1")
|
|
113
113
|
}
|
|
114
114
|
}, {
|
|
115
115
|
type: "component",
|
|
116
|
-
name: "
|
|
116
|
+
name: "hostless-tab-button",
|
|
117
117
|
props: {
|
|
118
118
|
tabKey: "tab2",
|
|
119
119
|
children: /*#__PURE__*/defaultButtonChildren("Tab 2")
|
|
120
120
|
}
|
|
121
121
|
}, {
|
|
122
122
|
type: "component",
|
|
123
|
-
name: "
|
|
123
|
+
name: "hostless-tab-underline"
|
|
124
124
|
}]
|
|
125
125
|
}, {
|
|
126
126
|
type: "vbox",
|
|
127
127
|
children: [{
|
|
128
128
|
type: "component",
|
|
129
|
-
name: "
|
|
129
|
+
name: "hostless-tab-content",
|
|
130
130
|
props: {
|
|
131
131
|
tabKey: "tab1",
|
|
132
132
|
children: [{
|
|
@@ -136,7 +136,7 @@ var TabsContainerMeta = {
|
|
|
136
136
|
}
|
|
137
137
|
}, {
|
|
138
138
|
type: "component",
|
|
139
|
-
name: "
|
|
139
|
+
name: "hostless-tab-content",
|
|
140
140
|
props: {
|
|
141
141
|
tabKey: "tab2",
|
|
142
142
|
children: [{
|
|
@@ -190,7 +190,7 @@ function Helper(_ref3) {
|
|
|
190
190
|
}
|
|
191
191
|
|
|
192
192
|
var TabUnderlineMeta = {
|
|
193
|
-
name: "
|
|
193
|
+
name: "hostless-tab-underline",
|
|
194
194
|
displayName: "Tab Underline",
|
|
195
195
|
importName: "TabUnderline",
|
|
196
196
|
importPath: modulePath,
|
|
@@ -225,7 +225,7 @@ function TabUnderline(_ref4) {
|
|
|
225
225
|
}) : null;
|
|
226
226
|
}
|
|
227
227
|
var TabButtonMeta = {
|
|
228
|
-
name: "
|
|
228
|
+
name: "hostless-tab-button",
|
|
229
229
|
isAttachment: true,
|
|
230
230
|
displayName: "Tab Button",
|
|
231
231
|
importName: "TabButton",
|
|
@@ -281,7 +281,7 @@ function TabButton(_ref6) {
|
|
|
281
281
|
}));
|
|
282
282
|
}
|
|
283
283
|
var TabContentMeta = {
|
|
284
|
-
name: "
|
|
284
|
+
name: "hostless-tab-content",
|
|
285
285
|
isAttachment: true,
|
|
286
286
|
displayName: "Tab Content",
|
|
287
287
|
importName: "TabContent",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plasmic-tabs.cjs.development.js","sources":["../src/tabs.tsx","../src/index.tsx"],"sourcesContent":["import { DataProvider, usePlasmicCanvasContext,ComponentMeta } from \"@plasmicapp/host\";\nimport constate from \"constate\";\nimport React, {\n cloneElement,\n createContext,\n ReactElement,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\n\nconst noop = ()=>{};\n\nfunction defaultButtonChildren(label: string) {\n return {\n type: \"default-component\",\n kind: \"button\",\n props: {\n children: {\n type: \"text\",\n value: label,\n },\n },\n } as const;\n}\nexport interface TabsProviderProps {\n children?: ReactNode;\n initialKey?: string;\n previewKey?: string;\n previewAll?: boolean;\n}\n\nconst DebugContext = createContext(false);\n\nfunction useTabsData({ initialKey }: { initialKey?: string }) {\n const [tabKey, setTabKey] = useState<string | undefined>(initialKey);\n const [bbox, setBbox] = useState<{ left: number; width: number } | undefined>(\n undefined\n );\n return {\n tabKey,\n bbox,\n setTabKey,\n setBbox,\n };\n}\n\nconst [TabsProvider, useTabsContextUnsafe] = constate(useTabsData);\n\nfunction useTabsContext() {\n const result = useTabsContextUnsafe();\n return \"setTabKey\" in result ? result : undefined;\n}\nconst modulePath=\"@plasmicpkgs/plasmic-tabs\"\n\nexport const TabsContainerMeta: ComponentMeta<TabsProviderProps> = {\n name: \"TabsContainer\",\n displayName: \"Tabs Container\",\n importName: \"TabsContainer\",\n importPath: modulePath,\n providesData:true,\n defaultStyles: {\n width: \"stretch\",\n padding: \"8px\",\n },\n props: {\n initialKey: {\n type: \"string\",\n description: \"Key of the initially selected tab\",\n defaultValue: \"tab1\",\n },\n previewKey: {\n type: \"string\",\n description: \"SShow this key while editing in Plasmic Studio\",\n },\n previewAll: {\n type: \"boolean\",\n description: \"Reveal all tab contents while editing in Plasmic Studio\",\n },\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"vbox\",\n children: [\n {\n type: \"hbox\",\n children: [\n {\n type: \"component\",\n name: \"TabButton\",\n props: {\n tabKey: \"tab1\",\n children:defaultButtonChildren(\"Tab 1\")\n },\n },\n {\n type: \"component\",\n name: \"TabButton\",\n props: {\n tabKey: \"tab2\",\n children:defaultButtonChildren(\"Tab 2\")\n },\n },\n {\n type: \"component\",\n name: \"TabUnderline\",\n },\n ],\n },\n {\n type: \"vbox\",\n children: [\n {\n type: \"component\",\n name: \"TabContent\",\n props: {\n tabKey: \"tab1\",\n children: [\n {\n type: \"vbox\",\n children: [\"Some content for tab 1\"],\n },\n ],\n },\n },\n {\n type: \"component\",\n name: \"TabContent\",\n props: {\n tabKey: \"tab2\",\n children: [\n {\n type: \"vbox\",\n children: [\"Some content for tab 2\"],\n },\n ],\n },\n },\n ],\n },\n ],\n },\n },\n },\n };\n\n\nexport function TabsContainer({\n children,\n initialKey,\n previewKey,\n previewAll = false,\n}: TabsProviderProps) {\n const inEditor = !!usePlasmicCanvasContext();\n return (\n <TabsProvider initialKey={initialKey}>\n <DebugContext.Provider value={inEditor && previewAll}>\n <Helper previewKey={previewKey || initialKey}>{children}</Helper>\n </DebugContext.Provider>\n </TabsProvider>\n );\n}\n\nfunction ensure<T>(x: T | undefined | null) {\n if (!x) {\n throw new Error(\"unexpected nil\");\n }\n return x;\n}\n\nfunction Helper({\n children,\n previewKey,\n}: {\n previewKey?: string;\n children?: ReactNode;\n}) {\n const inEditor = usePlasmicCanvasContext();\n const { tabKey } = ensure(useTabsContext());\n const effectiveKey = inEditor ? previewKey || tabKey : tabKey;\n return (\n <DataProvider name={\"currentTabKey\"} data={effectiveKey}>\n {children}\n </DataProvider>\n );\n}\n\nexport interface TabUnderlineProps {\n className?: string;\n}\n\nexport const TabUnderlineMeta:ComponentMeta <TabUnderlineProps>={\n name: \"TabUnderline\",\n displayName: \"Tab Underline\",\n importName: \"TabUnderline\",\n importPath: modulePath,\n props: {\n children: {\n type: \"slot\",\n },\n },\n defaultStyles: {\n background: \"#7777ff\",\n height: \"2px\",\n },\n}\n\n\nexport function TabUnderline({ className }: TabUnderlineProps) {\n const { bbox } = useTabsContext() ?? { bbox: undefined };\n return bbox ? (\n <div\n className={className}\n style={{\n ...JSON.parse(JSON.stringify(bbox)),\n top: undefined,\n bottom: 0,\n position: \"absolute\",\n transition: \".4s ease all\",\n }}\n ></div>\n ) : null;\n}\n\nexport interface TabButtonProps {\n className?: string;\n children?: ReactNode;\n tabKey?: string;\n}\n\nexport const TabButtonMeta:ComponentMeta<TabButtonProps>={\n name: \"TabButton\",\n isAttachment: true,\n displayName: \"Tab Button\",\n importName: \"TabButton\",\n importPath: modulePath,\n props: {\n tabKey: {\n type: \"string\",\n description: \"The answer value selecting this choice sets\",\n },\n children: {\n type: \"slot\",\n defaultValue:defaultButtonChildren(\"Some tab\")\n },\n },\n defaultStyles: {\n width: \"hug\",\n },\n}\n\nexport function TabButton({ className, children, tabKey }: TabButtonProps) {\n const tabsContext = useTabsContext();\n const ref = useRef<HTMLDivElement>(null);\n const { tabKey: activeKey, setTabKey, bbox, setBbox } = tabsContext ?? {\n tabKey: undefined,\n setTabKey: noop,\n bbox: undefined,\n setBbox:noop,\n };\n useEffect(() => {\n if (tabKey === activeKey) {\n setBbox({\n width: ref.current!.offsetWidth,\n left: ref.current!.offsetLeft,\n });\n }\n }, [ref.current, setBbox, JSON.stringify(bbox), tabKey, activeKey]);\n return (\n <div className={className} ref={ref}>\n {cloneElement(React.Children.toArray(children)[0] as ReactElement, {\n isActive: tabKey && activeKey && activeKey === tabKey,\n onClick: () => {\n setTabKey(tabKey);\n },\n })}\n </div>\n );\n}\n\nexport interface TabContentProps {\n children?: ReactNode;\n tabKey?: string;\n}\n\nexport const TabContentMeta:ComponentMeta<TabContentProps>={\n name: \"TabContent\",\n isAttachment: true,\n displayName: \"Tab Content\",\n importName: \"TabContent\",\n importPath: modulePath,\n props: {\n tabKey: {\n type: \"string\",\n description: \"The answer value selecting this choice sets\",\n },\n children: {\n type: \"slot\",\n defaultValue: {\n type:\"vbox\",\n children:{\n type:\"text\",\n value:\"This is some tab content\"\n }\n },\n },\n },\n}\nexport function TabContent({ children, tabKey }: TabContentProps) {\n const tabsContext = useTabsContext();\n const previewAll = useContext(DebugContext);\n const { tabKey: activeKey } = tabsContext ?? { tabKey: undefined };\n return (\n <>\n {tabsContext === undefined || activeKey === tabKey || previewAll\n ? children\n : null}\n </>\n );\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\n\nimport {\n TabsContainer,\n TabsContainerMeta,\n TabUnderline,\n TabUnderlineMeta,\n TabButton,\n TabButtonMeta,\n TabContent, TabContentMeta\n} from \"./tabs\";\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n}) {\n const _registerComponent = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: ComponentMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerComponent(Component, defaultMeta);\n } else {\n registerComponent(Component, defaultMeta);\n }\n };\n \n _registerComponent(TabsContainer, TabsContainerMeta);\n _registerComponent(TabUnderline, TabUnderlineMeta);\n _registerComponent(TabButton, TabButtonMeta);\n _registerComponent(TabContent, TabContentMeta);\n\n}\n\nexport * from \"./tabs\";\n"],"names":["noop","defaultButtonChildren","label","type","kind","props","children","value","DebugContext","createContext","useTabsData","initialKey","useState","tabKey","setTabKey","undefined","bbox","setBbox","constate","TabsProvider","useTabsContextUnsafe","useTabsContext","result","modulePath","TabsContainerMeta","name","displayName","importName","importPath","providesData","defaultStyles","width","padding","description","defaultValue","previewKey","previewAll","TabsContainer","inEditor","usePlasmicCanvasContext","React","Provider","Helper","ensure","x","Error","effectiveKey","DataProvider","data","TabUnderlineMeta","background","height","TabUnderline","className","style","JSON","parse","stringify","top","bottom","position","transition","TabButtonMeta","isAttachment","TabButton","tabsContext","ref","useRef","activeKey","useEffect","current","offsetWidth","left","offsetLeft","cloneElement","Children","toArray","isActive","onClick","TabContentMeta","TabContent","useContext","registerAll","loader","_registerComponent","Component","defaultMeta","registerComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,IAAMA,IAAI,GAAG,SAAPA,IAAO,KAAb;;AAEA,SAASC,qBAAT,CAA+BC,KAA/B;AACE,SAAO;AACLC,IAAAA,IAAI,EAAE,mBADD;AAELC,IAAAA,IAAI,EAAE,QAFD;AAGLC,IAAAA,KAAK,EAAE;AACLC,MAAAA,QAAQ,EAAE;AACRH,QAAAA,IAAI,EAAE,MADE;AAERI,QAAAA,KAAK,EAAEL;AAFC;AADL;AAHF,GAAP;AAUD;;AAQD,IAAMM,YAAY,gBAAGC,mBAAa,CAAC,KAAD,CAAlC;;AAEA,SAASC,WAAT;MAAuBC,kBAAAA;;AACrB,kBAA4BC,cAAQ,CAAqBD,UAArB,CAApC;AAAA,MAAOE,MAAP;AAAA,MAAeC,SAAf;;AACA,mBAAwBF,cAAQ,CAC9BG,SAD8B,CAAhC;AAAA,MAAOC,IAAP;AAAA,MAAaC,OAAb;;AAGA,SAAO;AACLJ,IAAAA,MAAM,EAANA,MADK;AAELG,IAAAA,IAAI,EAAJA,IAFK;AAGLF,IAAAA,SAAS,EAATA,SAHK;AAILG,IAAAA,OAAO,EAAPA;AAJK,GAAP;AAMD;;AAED,6BAA6CC,QAAQ,CAACR,WAAD,CAArD;AAAA,IAAOS,YAAP;AAAA,IAAqBC,oBAArB;;AAEA,SAASC,cAAT;AACE,MAAMC,MAAM,GAAGF,oBAAoB,EAAnC;AACA,SAAO,eAAeE,MAAf,GAAwBA,MAAxB,GAAiCP,SAAxC;AACD;;AACD,IAAMQ,UAAU,GAAC,2BAAjB;IAEaC,iBAAiB,GAAqC;AAC/DC,EAAAA,IAAI,EAAE,eADyD;AAE/DC,EAAAA,WAAW,EAAE,gBAFkD;AAG/DC,EAAAA,UAAU,EAAE,eAHmD;AAI/DC,EAAAA,UAAU,EAAEL,UAJmD;AAK/DM,EAAAA,YAAY,EAAC,IALkD;AAM/DC,EAAAA,aAAa,EAAE;AACfC,IAAAA,KAAK,EAAE,SADQ;AAEfC,IAAAA,OAAO,EAAE;AAFM,GANgD;AAU/D3B,EAAAA,KAAK,EAAE;AACPM,IAAAA,UAAU,EAAE;AACVR,MAAAA,IAAI,EAAE,QADI;AAEV8B,MAAAA,WAAW,EAAE,mCAFH;AAGVC,MAAAA,YAAY,EAAE;AAHJ,KADL;AAMPC,IAAAA,UAAU,EAAE;AACVhC,MAAAA,IAAI,EAAE,QADI;AAEV8B,MAAAA,WAAW,EAAE;AAFH,KANL;AAUPG,IAAAA,UAAU,EAAE;AACVjC,MAAAA,IAAI,EAAE,SADI;AAEV8B,MAAAA,WAAW,EAAE;AAFH,KAVL;AAcP3B,IAAAA,QAAQ,EAAE;AACRH,MAAAA,IAAI,EAAE,MADE;AAER+B,MAAAA,YAAY,EAAE;AACZ/B,QAAAA,IAAI,EAAE,MADM;AAEZG,QAAAA,QAAQ,EAAE,CACR;AACEH,UAAAA,IAAI,EAAE,MADR;AAEEG,UAAAA,QAAQ,EAAE,CACR;AACEH,YAAAA,IAAI,EAAE,WADR;AAEEsB,YAAAA,IAAI,EAAE,WAFR;AAGEpB,YAAAA,KAAK,EAAE;AACLQ,cAAAA,MAAM,EAAE,MADH;AAELP,cAAAA,QAAQ,eAACL,qBAAqB,CAAC,OAAD;AAFzB;AAHT,WADQ,EASR;AACEE,YAAAA,IAAI,EAAE,WADR;AAEEsB,YAAAA,IAAI,EAAE,WAFR;AAGEpB,YAAAA,KAAK,EAAE;AACLQ,cAAAA,MAAM,EAAE,MADH;AAELP,cAAAA,QAAQ,eAACL,qBAAqB,CAAC,OAAD;AAFzB;AAHT,WATQ,EAiBR;AACEE,YAAAA,IAAI,EAAE,WADR;AAEEsB,YAAAA,IAAI,EAAE;AAFR,WAjBQ;AAFZ,SADQ,EA0BR;AACEtB,UAAAA,IAAI,EAAE,MADR;AAEEG,UAAAA,QAAQ,EAAE,CACR;AACEH,YAAAA,IAAI,EAAE,WADR;AAEEsB,YAAAA,IAAI,EAAE,YAFR;AAGEpB,YAAAA,KAAK,EAAE;AACLQ,cAAAA,MAAM,EAAE,MADH;AAELP,cAAAA,QAAQ,EAAE,CACR;AACEH,gBAAAA,IAAI,EAAE,MADR;AAEEG,gBAAAA,QAAQ,EAAE,CAAC,wBAAD;AAFZ,eADQ;AAFL;AAHT,WADQ,EAcR;AACEH,YAAAA,IAAI,EAAE,WADR;AAEEsB,YAAAA,IAAI,EAAE,YAFR;AAGEpB,YAAAA,KAAK,EAAE;AACLQ,cAAAA,MAAM,EAAE,MADH;AAELP,cAAAA,QAAQ,EAAE,CACR;AACEH,gBAAAA,IAAI,EAAE,MADR;AAEEG,gBAAAA,QAAQ,EAAE,CAAC,wBAAD;AAFZ,eADQ;AAFL;AAHT,WAdQ;AAFZ,SA1BQ;AAFE;AAFN;AAdH;AAVwD;SA4FnD+B;MACd/B,iBAAAA;MACAK,mBAAAA;MACAwB,mBAAAA;+BACAC;MAAAA,2CAAa;AAEb,MAAME,QAAQ,GAAG,CAAC,CAACC,4BAAuB,EAA1C;AACA,SACEC,4BAAA,CAACrB,YAAD;AAAcR,IAAAA,UAAU,EAAEA;GAA1B,EACE6B,4BAAA,CAAChC,YAAY,CAACiC,QAAd;AAAuBlC,IAAAA,KAAK,EAAE+B,QAAQ,IAAIF;GAA1C,EACEI,4BAAA,CAACE,MAAD;AAAQP,IAAAA,UAAU,EAAEA,UAAU,IAAIxB;GAAlC,EAA+CL,QAA/C,CADF,CADF,CADF;AAOD;;AAED,SAASqC,MAAT,CAAmBC,CAAnB;AACE,MAAI,CAACA,CAAL,EAAQ;AACN,UAAM,IAAIC,KAAJ,CAAU,gBAAV,CAAN;AACD;;AACD,SAAOD,CAAP;AACD;;AAED,SAASF,MAAT;MACEpC,iBAAAA;MACA6B,mBAAAA;AAKA,MAAMG,QAAQ,GAAGC,4BAAuB,EAAxC;;AACA,gBAAmBI,MAAM,CAACtB,cAAc,EAAf,CAAzB;AAAA,MAAQR,MAAR,WAAQA,MAAR;;AACA,MAAMiC,YAAY,GAAGR,QAAQ,GAAGH,UAAU,IAAItB,MAAjB,GAA0BA,MAAvD;AACA,SACE2B,4BAAA,CAACO,iBAAD;AAActB,IAAAA,IAAI,EAAE;AAAiBuB,IAAAA,IAAI,EAAEF;GAA3C,EACGxC,QADH,CADF;AAKD;;IAMY2C,gBAAgB,GAAmC;AAC5DxB,EAAAA,IAAI,EAAE,cADsD;AAE5DC,EAAAA,WAAW,EAAE,eAF+C;AAG5DC,EAAAA,UAAU,EAAE,cAHgD;AAI5DC,EAAAA,UAAU,EAAEL,UAJgD;AAK5DlB,EAAAA,KAAK,EAAE;AACPC,IAAAA,QAAQ,EAAE;AACRH,MAAAA,IAAI,EAAE;AADE;AADH,GALqD;AAU5D2B,EAAAA,aAAa,EAAE;AACfoB,IAAAA,UAAU,EAAE,SADG;AAEfC,IAAAA,MAAM,EAAE;AAFO;AAV6C;SAiBhDC;;;MAAeC,kBAAAA;;AAC7B,iCAAiBhC,cAAc,EAA/B,8BAAqC;AAAEL,IAAAA,IAAI,EAAED;AAAR,GAArC;AAAA,MAAQC,IAAR,SAAQA,IAAR;;AACA,SAAOA,IAAI,GACTwB,4BAAA,MAAA;AACEa,IAAAA,SAAS,EAAEA;AACXC,IAAAA,KAAK,eACAC,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAezC,IAAf,CAAX,CADA;AAEH0C,MAAAA,GAAG,EAAE3C,SAFF;AAGH4C,MAAAA,MAAM,EAAE,CAHL;AAIHC,MAAAA,QAAQ,EAAE,UAJP;AAKHC,MAAAA,UAAU,EAAE;AALT;GAFP,CADS,GAWP,IAXJ;AAYD;IAQYC,aAAa,GAA+B;AACrDrC,EAAAA,IAAI,EAAE,WAD+C;AAErDsC,EAAAA,YAAY,EAAE,IAFuC;AAGrDrC,EAAAA,WAAW,EAAE,YAHwC;AAIrDC,EAAAA,UAAU,EAAE,WAJyC;AAKrDC,EAAAA,UAAU,EAAEL,UALyC;AAMrDlB,EAAAA,KAAK,EAAE;AACPQ,IAAAA,MAAM,EAAE;AACNV,MAAAA,IAAI,EAAE,QADA;AAEN8B,MAAAA,WAAW,EAAE;AAFP,KADD;AAKP3B,IAAAA,QAAQ,EAAE;AACRH,MAAAA,IAAI,EAAE,MADE;AAER+B,MAAAA,YAAY,eAACjC,qBAAqB,CAAC,UAAD;AAF1B;AALH,GAN8C;AAgBvD6B,EAAAA,aAAa,EAAE;AACbC,IAAAA,KAAK,EAAE;AADM;AAhBwC;SAqBzCiC;MAAYX,kBAAAA;MAAW/C,iBAAAA;MAAUO,eAAAA;AAC/C,MAAMoD,WAAW,GAAG5C,cAAc,EAAlC;AACA,MAAM6C,GAAG,GAAGC,YAAM,CAAiB,IAAjB,CAAlB;;AACA,cAAwDF,WAAxD,WAAwDA,WAAxD,GAAuE;AACrEpD,IAAAA,MAAM,EAAEE,SAD6D;AAErED,IAAAA,SAAS,EAAEd,IAF0D;AAGrEgB,IAAAA,IAAI,EAAED,SAH+D;AAIrEE,IAAAA,OAAO,EAACjB;AAJ6D,GAAvE;AAAA,MAAgBoE,SAAhB,SAAQvD,MAAR;AAAA,MAA2BC,SAA3B,SAA2BA,SAA3B;AAAA,MAAsCE,IAAtC,SAAsCA,IAAtC;AAAA,MAA4CC,OAA5C,SAA4CA,OAA5C;;AAMAoD,EAAAA,eAAS,CAAC;AACR,QAAIxD,MAAM,KAAKuD,SAAf,EAA0B;AACxBnD,MAAAA,OAAO,CAAC;AACNc,QAAAA,KAAK,EAAEmC,GAAG,CAACI,OAAJ,CAAaC,WADd;AAENC,QAAAA,IAAI,EAAEN,GAAG,CAACI,OAAJ,CAAaG;AAFb,OAAD,CAAP;AAID;AACF,GAPQ,EAON,CAACP,GAAG,CAACI,OAAL,EAAcrD,OAAd,EAAuBsC,IAAI,CAACE,SAAL,CAAezC,IAAf,CAAvB,EAA6CH,MAA7C,EAAqDuD,SAArD,CAPM,CAAT;AAQA,SACE5B,4BAAA,MAAA;AAAKa,IAAAA,SAAS,EAAEA;AAAWa,IAAAA,GAAG,EAAEA;GAAhC,EACGQ,kBAAY,CAAClC,cAAK,CAACmC,QAAN,CAAeC,OAAf,CAAuBtE,QAAvB,EAAiC,CAAjC,CAAD,EAAsD;AACjEuE,IAAAA,QAAQ,EAAEhE,MAAM,IAAIuD,SAAV,IAAuBA,SAAS,KAAKvD,MADkB;AAEjEiE,IAAAA,OAAO,EAAE;AACPhE,MAAAA,SAAS,CAACD,MAAD,CAAT;AACD;AAJgE,GAAtD,CADf,CADF;AAUD;IAOYkE,cAAc,GAAgC;AACzDtD,EAAAA,IAAI,EAAE,YADmD;AAEzDsC,EAAAA,YAAY,EAAE,IAF2C;AAGzDrC,EAAAA,WAAW,EAAE,aAH4C;AAIzDC,EAAAA,UAAU,EAAE,YAJ6C;AAKzDC,EAAAA,UAAU,EAAEL,UAL6C;AAMzDlB,EAAAA,KAAK,EAAE;AACLQ,IAAAA,MAAM,EAAE;AACNV,MAAAA,IAAI,EAAE,QADA;AAEN8B,MAAAA,WAAW,EAAE;AAFP,KADH;AAKL3B,IAAAA,QAAQ,EAAE;AACRH,MAAAA,IAAI,EAAE,MADE;AAER+B,MAAAA,YAAY,EAAE;AACd/B,QAAAA,IAAI,EAAC,MADS;AAEdG,QAAAA,QAAQ,EAAC;AACPH,UAAAA,IAAI,EAAC,MADE;AAEPI,UAAAA,KAAK,EAAC;AAFC;AAFK;AAFN;AALL;AANkD;SAuB3CyE;MAAa1E,iBAAAA;MAAUO,eAAAA;AACrC,MAAMoD,WAAW,GAAG5C,cAAc,EAAlC;AACA,MAAMe,UAAU,GAAG6C,gBAAU,CAACzE,YAAD,CAA7B;;AACA,cAA8ByD,WAA9B,WAA8BA,WAA9B,GAA6C;AAAEpD,IAAAA,MAAM,EAAEE;AAAV,GAA7C;AAAA,MAAgBqD,SAAhB,SAAQvD,MAAR;;AACA,SACE2B,4BAAA,wBAAA,MAAA,EACGyB,WAAW,KAAKlD,SAAhB,IAA6BqD,SAAS,KAAKvD,MAA3C,IAAqDuB,UAArD,GACG9B,QADH,GAEG,IAHN,CADF;AAOD;;SCpTe4E,YAAYC;AAG1B,MAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,CACzBC,SADyB,EAEzBC,WAFyB;AAIzB,QAAIH,MAAJ,EAAY;AACVA,MAAAA,MAAM,CAACI,iBAAP,CAAyBF,SAAzB,EAAoCC,WAApC;AACD,KAFD,MAEO;AACLC,MAAAA,iBAAiB,CAACF,SAAD,EAAYC,WAAZ,CAAjB;AACD;AACF,GATD;;AAWAF,EAAAA,kBAAkB,CAAC/C,aAAD,EAAgBb,iBAAhB,CAAlB;;AACA4D,EAAAA,kBAAkB,CAAChC,YAAD,EAAeH,gBAAf,CAAlB;;AACAmC,EAAAA,kBAAkB,CAACpB,SAAD,EAAYF,aAAZ,CAAlB;;AACAsB,EAAAA,kBAAkB,CAACJ,UAAD,EAAaD,cAAb,CAAlB;AAED;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"plasmic-tabs.cjs.development.js","sources":["../src/tabs.tsx","../src/index.tsx"],"sourcesContent":["import { DataProvider, usePlasmicCanvasContext,ComponentMeta } from \"@plasmicapp/host\";\nimport constate from \"constate\";\nimport React, {\n cloneElement,\n createContext,\n ReactElement,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\n\nconst noop = ()=>{};\n\nfunction defaultButtonChildren(label: string) {\n return {\n type: \"default-component\",\n kind: \"button\",\n props: {\n children: {\n type: \"text\",\n value: label,\n },\n },\n } as const;\n}\nexport interface TabsProviderProps {\n children?: ReactNode;\n initialKey?: string;\n previewKey?: string;\n previewAll?: boolean;\n}\n\nconst DebugContext = createContext(false);\n\nfunction useTabsData({ initialKey }: { initialKey?: string }) {\n const [tabKey, setTabKey] = useState<string | undefined>(initialKey);\n const [bbox, setBbox] = useState<{ left: number; width: number } | undefined>(\n undefined\n );\n return {\n tabKey,\n bbox,\n setTabKey,\n setBbox,\n };\n}\n\nconst [TabsProvider, useTabsContextUnsafe] = constate(useTabsData);\n\nfunction useTabsContext() {\n const result = useTabsContextUnsafe();\n return \"setTabKey\" in result ? result : undefined;\n}\nconst modulePath=\"@plasmicpkgs/plasmic-tabs\"\n\nexport const TabsContainerMeta: ComponentMeta<TabsProviderProps> = {\n name: \"hostless-tabs-container\",\n displayName: \"Tabs Container\",\n importName: \"TabsContainer\",\n importPath: modulePath,\n providesData:true,\n defaultStyles: {\n width: \"stretch\",\n padding: \"8px\",\n },\n props: {\n initialKey: {\n type: \"string\",\n description: \"Key of the initially selected tab\",\n defaultValue: \"tab1\",\n },\n previewKey: {\n type: \"string\",\n description: \"SShow this key while editing in Plasmic Studio\",\n },\n previewAll: {\n type: \"boolean\",\n description: \"Reveal all tab contents while editing in Plasmic Studio\",\n },\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"vbox\",\n children: [\n {\n type: \"hbox\",\n children: [\n {\n type: \"component\",\n name: \"hostless-tab-button\",\n props: {\n tabKey: \"tab1\",\n children:defaultButtonChildren(\"Tab 1\")\n },\n },\n {\n type: \"component\",\n name: \"hostless-tab-button\",\n props: {\n tabKey: \"tab2\",\n children:defaultButtonChildren(\"Tab 2\")\n },\n },\n {\n type: \"component\",\n name: \"hostless-tab-underline\",\n },\n ],\n },\n {\n type: \"vbox\",\n children: [\n {\n type: \"component\",\n name: \"hostless-tab-content\",\n props: {\n tabKey: \"tab1\",\n children: [\n {\n type: \"vbox\",\n children: [\"Some content for tab 1\"],\n },\n ],\n },\n },\n {\n type: \"component\",\n name: \"hostless-tab-content\",\n props: {\n tabKey: \"tab2\",\n children: [\n {\n type: \"vbox\",\n children: [\"Some content for tab 2\"],\n },\n ],\n },\n },\n ],\n },\n ],\n },\n },\n },\n };\n\n\nexport function TabsContainer({\n children,\n initialKey,\n previewKey,\n previewAll = false,\n}: TabsProviderProps) {\n const inEditor = !!usePlasmicCanvasContext();\n return (\n <TabsProvider initialKey={initialKey}>\n <DebugContext.Provider value={inEditor && previewAll}>\n <Helper previewKey={previewKey || initialKey}>{children}</Helper>\n </DebugContext.Provider>\n </TabsProvider>\n );\n}\n\nfunction ensure<T>(x: T | undefined | null) {\n if (!x) {\n throw new Error(\"unexpected nil\");\n }\n return x;\n}\n\nfunction Helper({\n children,\n previewKey,\n}: {\n previewKey?: string;\n children?: ReactNode;\n}) {\n const inEditor = usePlasmicCanvasContext();\n const { tabKey } = ensure(useTabsContext());\n const effectiveKey = inEditor ? previewKey || tabKey : tabKey;\n return (\n <DataProvider name={\"currentTabKey\"} data={effectiveKey}>\n {children}\n </DataProvider>\n );\n}\n\nexport interface TabUnderlineProps {\n className?: string;\n}\n\nexport const TabUnderlineMeta:ComponentMeta <TabUnderlineProps>={\n name: \"hostless-tab-underline\",\n displayName: \"Tab Underline\",\n importName: \"TabUnderline\",\n importPath: modulePath,\n props: {\n children: {\n type: \"slot\",\n },\n },\n defaultStyles: {\n background: \"#7777ff\",\n height: \"2px\",\n },\n}\n\n\nexport function TabUnderline({ className }: TabUnderlineProps) {\n const { bbox } = useTabsContext() ?? { bbox: undefined };\n return bbox ? (\n <div\n className={className}\n style={{\n ...JSON.parse(JSON.stringify(bbox)),\n top: undefined,\n bottom: 0,\n position: \"absolute\",\n transition: \".4s ease all\",\n }}\n ></div>\n ) : null;\n}\n\nexport interface TabButtonProps {\n className?: string;\n children?: ReactNode;\n tabKey?: string;\n}\n\nexport const TabButtonMeta:ComponentMeta<TabButtonProps>={\n name: \"hostless-tab-button\",\n isAttachment: true,\n displayName: \"Tab Button\",\n importName: \"TabButton\",\n importPath: modulePath,\n props: {\n tabKey: {\n type: \"string\",\n description: \"The answer value selecting this choice sets\",\n },\n children: {\n type: \"slot\",\n defaultValue:defaultButtonChildren(\"Some tab\")\n },\n },\n defaultStyles: {\n width: \"hug\",\n },\n}\n\nexport function TabButton({ className, children, tabKey }: TabButtonProps) {\n const tabsContext = useTabsContext();\n const ref = useRef<HTMLDivElement>(null);\n const { tabKey: activeKey, setTabKey, bbox, setBbox } = tabsContext ?? {\n tabKey: undefined,\n setTabKey: noop,\n bbox: undefined,\n setBbox:noop,\n };\n useEffect(() => {\n if (tabKey === activeKey) {\n setBbox({\n width: ref.current!.offsetWidth,\n left: ref.current!.offsetLeft,\n });\n }\n }, [ref.current, setBbox, JSON.stringify(bbox), tabKey, activeKey]);\n return (\n <div className={className} ref={ref}>\n {cloneElement(React.Children.toArray(children)[0] as ReactElement, {\n isActive: tabKey && activeKey && activeKey === tabKey,\n onClick: () => {\n setTabKey(tabKey);\n },\n })}\n </div>\n );\n}\n\nexport interface TabContentProps {\n children?: ReactNode;\n tabKey?: string;\n}\n\nexport const TabContentMeta:ComponentMeta<TabContentProps>={\n name: \"hostless-tab-content\",\n isAttachment: true,\n displayName: \"Tab Content\",\n importName: \"TabContent\",\n importPath: modulePath,\n props: {\n tabKey: {\n type: \"string\",\n description: \"The answer value selecting this choice sets\",\n },\n children: {\n type: \"slot\",\n defaultValue: {\n type:\"vbox\",\n children:{\n type:\"text\",\n value:\"This is some tab content\"\n }\n },\n },\n },\n}\nexport function TabContent({ children, tabKey }: TabContentProps) {\n const tabsContext = useTabsContext();\n const previewAll = useContext(DebugContext);\n const { tabKey: activeKey } = tabsContext ?? { tabKey: undefined };\n return (\n <>\n {tabsContext === undefined || activeKey === tabKey || previewAll\n ? children\n : null}\n </>\n );\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\n\nimport {\n TabsContainer,\n TabsContainerMeta,\n TabUnderline,\n TabUnderlineMeta,\n TabButton,\n TabButtonMeta,\n TabContent, TabContentMeta\n} from \"./tabs\";\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n}) {\n const _registerComponent = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: ComponentMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerComponent(Component, defaultMeta);\n } else {\n registerComponent(Component, defaultMeta);\n }\n };\n \n _registerComponent(TabsContainer, TabsContainerMeta);\n _registerComponent(TabUnderline, TabUnderlineMeta);\n _registerComponent(TabButton, TabButtonMeta);\n _registerComponent(TabContent, TabContentMeta);\n\n}\n\nexport * from \"./tabs\";\n"],"names":["noop","defaultButtonChildren","label","type","kind","props","children","value","DebugContext","createContext","useTabsData","initialKey","useState","tabKey","setTabKey","undefined","bbox","setBbox","constate","TabsProvider","useTabsContextUnsafe","useTabsContext","result","modulePath","TabsContainerMeta","name","displayName","importName","importPath","providesData","defaultStyles","width","padding","description","defaultValue","previewKey","previewAll","TabsContainer","inEditor","usePlasmicCanvasContext","React","Provider","Helper","ensure","x","Error","effectiveKey","DataProvider","data","TabUnderlineMeta","background","height","TabUnderline","className","style","JSON","parse","stringify","top","bottom","position","transition","TabButtonMeta","isAttachment","TabButton","tabsContext","ref","useRef","activeKey","useEffect","current","offsetWidth","left","offsetLeft","cloneElement","Children","toArray","isActive","onClick","TabContentMeta","TabContent","useContext","registerAll","loader","_registerComponent","Component","defaultMeta","registerComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,IAAMA,IAAI,GAAG,SAAPA,IAAO,KAAb;;AAEA,SAASC,qBAAT,CAA+BC,KAA/B;AACE,SAAO;AACLC,IAAAA,IAAI,EAAE,mBADD;AAELC,IAAAA,IAAI,EAAE,QAFD;AAGLC,IAAAA,KAAK,EAAE;AACLC,MAAAA,QAAQ,EAAE;AACRH,QAAAA,IAAI,EAAE,MADE;AAERI,QAAAA,KAAK,EAAEL;AAFC;AADL;AAHF,GAAP;AAUD;;AAQD,IAAMM,YAAY,gBAAGC,mBAAa,CAAC,KAAD,CAAlC;;AAEA,SAASC,WAAT;MAAuBC,kBAAAA;;AACrB,kBAA4BC,cAAQ,CAAqBD,UAArB,CAApC;AAAA,MAAOE,MAAP;AAAA,MAAeC,SAAf;;AACA,mBAAwBF,cAAQ,CAC9BG,SAD8B,CAAhC;AAAA,MAAOC,IAAP;AAAA,MAAaC,OAAb;;AAGA,SAAO;AACLJ,IAAAA,MAAM,EAANA,MADK;AAELG,IAAAA,IAAI,EAAJA,IAFK;AAGLF,IAAAA,SAAS,EAATA,SAHK;AAILG,IAAAA,OAAO,EAAPA;AAJK,GAAP;AAMD;;AAED,6BAA6CC,QAAQ,CAACR,WAAD,CAArD;AAAA,IAAOS,YAAP;AAAA,IAAqBC,oBAArB;;AAEA,SAASC,cAAT;AACE,MAAMC,MAAM,GAAGF,oBAAoB,EAAnC;AACA,SAAO,eAAeE,MAAf,GAAwBA,MAAxB,GAAiCP,SAAxC;AACD;;AACD,IAAMQ,UAAU,GAAC,2BAAjB;IAEaC,iBAAiB,GAAqC;AAC/DC,EAAAA,IAAI,EAAE,yBADyD;AAE/DC,EAAAA,WAAW,EAAE,gBAFkD;AAG/DC,EAAAA,UAAU,EAAE,eAHmD;AAI/DC,EAAAA,UAAU,EAAEL,UAJmD;AAK/DM,EAAAA,YAAY,EAAC,IALkD;AAM/DC,EAAAA,aAAa,EAAE;AACfC,IAAAA,KAAK,EAAE,SADQ;AAEfC,IAAAA,OAAO,EAAE;AAFM,GANgD;AAU/D3B,EAAAA,KAAK,EAAE;AACPM,IAAAA,UAAU,EAAE;AACVR,MAAAA,IAAI,EAAE,QADI;AAEV8B,MAAAA,WAAW,EAAE,mCAFH;AAGVC,MAAAA,YAAY,EAAE;AAHJ,KADL;AAMPC,IAAAA,UAAU,EAAE;AACVhC,MAAAA,IAAI,EAAE,QADI;AAEV8B,MAAAA,WAAW,EAAE;AAFH,KANL;AAUPG,IAAAA,UAAU,EAAE;AACVjC,MAAAA,IAAI,EAAE,SADI;AAEV8B,MAAAA,WAAW,EAAE;AAFH,KAVL;AAcP3B,IAAAA,QAAQ,EAAE;AACRH,MAAAA,IAAI,EAAE,MADE;AAER+B,MAAAA,YAAY,EAAE;AACZ/B,QAAAA,IAAI,EAAE,MADM;AAEZG,QAAAA,QAAQ,EAAE,CACR;AACEH,UAAAA,IAAI,EAAE,MADR;AAEEG,UAAAA,QAAQ,EAAE,CACR;AACEH,YAAAA,IAAI,EAAE,WADR;AAEEsB,YAAAA,IAAI,EAAE,qBAFR;AAGEpB,YAAAA,KAAK,EAAE;AACLQ,cAAAA,MAAM,EAAE,MADH;AAELP,cAAAA,QAAQ,eAACL,qBAAqB,CAAC,OAAD;AAFzB;AAHT,WADQ,EASR;AACEE,YAAAA,IAAI,EAAE,WADR;AAEEsB,YAAAA,IAAI,EAAE,qBAFR;AAGEpB,YAAAA,KAAK,EAAE;AACLQ,cAAAA,MAAM,EAAE,MADH;AAELP,cAAAA,QAAQ,eAACL,qBAAqB,CAAC,OAAD;AAFzB;AAHT,WATQ,EAiBR;AACEE,YAAAA,IAAI,EAAE,WADR;AAEEsB,YAAAA,IAAI,EAAE;AAFR,WAjBQ;AAFZ,SADQ,EA0BR;AACEtB,UAAAA,IAAI,EAAE,MADR;AAEEG,UAAAA,QAAQ,EAAE,CACR;AACEH,YAAAA,IAAI,EAAE,WADR;AAEEsB,YAAAA,IAAI,EAAE,sBAFR;AAGEpB,YAAAA,KAAK,EAAE;AACLQ,cAAAA,MAAM,EAAE,MADH;AAELP,cAAAA,QAAQ,EAAE,CACR;AACEH,gBAAAA,IAAI,EAAE,MADR;AAEEG,gBAAAA,QAAQ,EAAE,CAAC,wBAAD;AAFZ,eADQ;AAFL;AAHT,WADQ,EAcR;AACEH,YAAAA,IAAI,EAAE,WADR;AAEEsB,YAAAA,IAAI,EAAE,sBAFR;AAGEpB,YAAAA,KAAK,EAAE;AACLQ,cAAAA,MAAM,EAAE,MADH;AAELP,cAAAA,QAAQ,EAAE,CACR;AACEH,gBAAAA,IAAI,EAAE,MADR;AAEEG,gBAAAA,QAAQ,EAAE,CAAC,wBAAD;AAFZ,eADQ;AAFL;AAHT,WAdQ;AAFZ,SA1BQ;AAFE;AAFN;AAdH;AAVwD;SA4FnD+B;MACd/B,iBAAAA;MACAK,mBAAAA;MACAwB,mBAAAA;+BACAC;MAAAA,2CAAa;AAEb,MAAME,QAAQ,GAAG,CAAC,CAACC,4BAAuB,EAA1C;AACA,SACEC,4BAAA,CAACrB,YAAD;AAAcR,IAAAA,UAAU,EAAEA;GAA1B,EACE6B,4BAAA,CAAChC,YAAY,CAACiC,QAAd;AAAuBlC,IAAAA,KAAK,EAAE+B,QAAQ,IAAIF;GAA1C,EACEI,4BAAA,CAACE,MAAD;AAAQP,IAAAA,UAAU,EAAEA,UAAU,IAAIxB;GAAlC,EAA+CL,QAA/C,CADF,CADF,CADF;AAOD;;AAED,SAASqC,MAAT,CAAmBC,CAAnB;AACE,MAAI,CAACA,CAAL,EAAQ;AACN,UAAM,IAAIC,KAAJ,CAAU,gBAAV,CAAN;AACD;;AACD,SAAOD,CAAP;AACD;;AAED,SAASF,MAAT;MACEpC,iBAAAA;MACA6B,mBAAAA;AAKA,MAAMG,QAAQ,GAAGC,4BAAuB,EAAxC;;AACA,gBAAmBI,MAAM,CAACtB,cAAc,EAAf,CAAzB;AAAA,MAAQR,MAAR,WAAQA,MAAR;;AACA,MAAMiC,YAAY,GAAGR,QAAQ,GAAGH,UAAU,IAAItB,MAAjB,GAA0BA,MAAvD;AACA,SACE2B,4BAAA,CAACO,iBAAD;AAActB,IAAAA,IAAI,EAAE;AAAiBuB,IAAAA,IAAI,EAAEF;GAA3C,EACGxC,QADH,CADF;AAKD;;IAMY2C,gBAAgB,GAAmC;AAC5DxB,EAAAA,IAAI,EAAE,wBADsD;AAE5DC,EAAAA,WAAW,EAAE,eAF+C;AAG5DC,EAAAA,UAAU,EAAE,cAHgD;AAI5DC,EAAAA,UAAU,EAAEL,UAJgD;AAK5DlB,EAAAA,KAAK,EAAE;AACPC,IAAAA,QAAQ,EAAE;AACRH,MAAAA,IAAI,EAAE;AADE;AADH,GALqD;AAU5D2B,EAAAA,aAAa,EAAE;AACfoB,IAAAA,UAAU,EAAE,SADG;AAEfC,IAAAA,MAAM,EAAE;AAFO;AAV6C;SAiBhDC;;;MAAeC,kBAAAA;;AAC7B,iCAAiBhC,cAAc,EAA/B,8BAAqC;AAAEL,IAAAA,IAAI,EAAED;AAAR,GAArC;AAAA,MAAQC,IAAR,SAAQA,IAAR;;AACA,SAAOA,IAAI,GACTwB,4BAAA,MAAA;AACEa,IAAAA,SAAS,EAAEA;AACXC,IAAAA,KAAK,eACAC,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAezC,IAAf,CAAX,CADA;AAEH0C,MAAAA,GAAG,EAAE3C,SAFF;AAGH4C,MAAAA,MAAM,EAAE,CAHL;AAIHC,MAAAA,QAAQ,EAAE,UAJP;AAKHC,MAAAA,UAAU,EAAE;AALT;GAFP,CADS,GAWP,IAXJ;AAYD;IAQYC,aAAa,GAA+B;AACrDrC,EAAAA,IAAI,EAAE,qBAD+C;AAErDsC,EAAAA,YAAY,EAAE,IAFuC;AAGrDrC,EAAAA,WAAW,EAAE,YAHwC;AAIrDC,EAAAA,UAAU,EAAE,WAJyC;AAKrDC,EAAAA,UAAU,EAAEL,UALyC;AAMrDlB,EAAAA,KAAK,EAAE;AACPQ,IAAAA,MAAM,EAAE;AACNV,MAAAA,IAAI,EAAE,QADA;AAEN8B,MAAAA,WAAW,EAAE;AAFP,KADD;AAKP3B,IAAAA,QAAQ,EAAE;AACRH,MAAAA,IAAI,EAAE,MADE;AAER+B,MAAAA,YAAY,eAACjC,qBAAqB,CAAC,UAAD;AAF1B;AALH,GAN8C;AAgBvD6B,EAAAA,aAAa,EAAE;AACbC,IAAAA,KAAK,EAAE;AADM;AAhBwC;SAqBzCiC;MAAYX,kBAAAA;MAAW/C,iBAAAA;MAAUO,eAAAA;AAC/C,MAAMoD,WAAW,GAAG5C,cAAc,EAAlC;AACA,MAAM6C,GAAG,GAAGC,YAAM,CAAiB,IAAjB,CAAlB;;AACA,cAAwDF,WAAxD,WAAwDA,WAAxD,GAAuE;AACrEpD,IAAAA,MAAM,EAAEE,SAD6D;AAErED,IAAAA,SAAS,EAAEd,IAF0D;AAGrEgB,IAAAA,IAAI,EAAED,SAH+D;AAIrEE,IAAAA,OAAO,EAACjB;AAJ6D,GAAvE;AAAA,MAAgBoE,SAAhB,SAAQvD,MAAR;AAAA,MAA2BC,SAA3B,SAA2BA,SAA3B;AAAA,MAAsCE,IAAtC,SAAsCA,IAAtC;AAAA,MAA4CC,OAA5C,SAA4CA,OAA5C;;AAMAoD,EAAAA,eAAS,CAAC;AACR,QAAIxD,MAAM,KAAKuD,SAAf,EAA0B;AACxBnD,MAAAA,OAAO,CAAC;AACNc,QAAAA,KAAK,EAAEmC,GAAG,CAACI,OAAJ,CAAaC,WADd;AAENC,QAAAA,IAAI,EAAEN,GAAG,CAACI,OAAJ,CAAaG;AAFb,OAAD,CAAP;AAID;AACF,GAPQ,EAON,CAACP,GAAG,CAACI,OAAL,EAAcrD,OAAd,EAAuBsC,IAAI,CAACE,SAAL,CAAezC,IAAf,CAAvB,EAA6CH,MAA7C,EAAqDuD,SAArD,CAPM,CAAT;AAQA,SACE5B,4BAAA,MAAA;AAAKa,IAAAA,SAAS,EAAEA;AAAWa,IAAAA,GAAG,EAAEA;GAAhC,EACGQ,kBAAY,CAAClC,cAAK,CAACmC,QAAN,CAAeC,OAAf,CAAuBtE,QAAvB,EAAiC,CAAjC,CAAD,EAAsD;AACjEuE,IAAAA,QAAQ,EAAEhE,MAAM,IAAIuD,SAAV,IAAuBA,SAAS,KAAKvD,MADkB;AAEjEiE,IAAAA,OAAO,EAAE;AACPhE,MAAAA,SAAS,CAACD,MAAD,CAAT;AACD;AAJgE,GAAtD,CADf,CADF;AAUD;IAOYkE,cAAc,GAAgC;AACzDtD,EAAAA,IAAI,EAAE,sBADmD;AAEzDsC,EAAAA,YAAY,EAAE,IAF2C;AAGzDrC,EAAAA,WAAW,EAAE,aAH4C;AAIzDC,EAAAA,UAAU,EAAE,YAJ6C;AAKzDC,EAAAA,UAAU,EAAEL,UAL6C;AAMzDlB,EAAAA,KAAK,EAAE;AACLQ,IAAAA,MAAM,EAAE;AACNV,MAAAA,IAAI,EAAE,QADA;AAEN8B,MAAAA,WAAW,EAAE;AAFP,KADH;AAKL3B,IAAAA,QAAQ,EAAE;AACRH,MAAAA,IAAI,EAAE,MADE;AAER+B,MAAAA,YAAY,EAAE;AACd/B,QAAAA,IAAI,EAAC,MADS;AAEdG,QAAAA,QAAQ,EAAC;AACPH,UAAAA,IAAI,EAAC,MADE;AAEPI,UAAAA,KAAK,EAAC;AAFC;AAFK;AAFN;AALL;AANkD;SAuB3CyE;MAAa1E,iBAAAA;MAAUO,eAAAA;AACrC,MAAMoD,WAAW,GAAG5C,cAAc,EAAlC;AACA,MAAMe,UAAU,GAAG6C,gBAAU,CAACzE,YAAD,CAA7B;;AACA,cAA8ByD,WAA9B,WAA8BA,WAA9B,GAA6C;AAAEpD,IAAAA,MAAM,EAAEE;AAAV,GAA7C;AAAA,MAAgBqD,SAAhB,SAAQvD,MAAR;;AACA,SACE2B,4BAAA,wBAAA,MAAA,EACGyB,WAAW,KAAKlD,SAAhB,IAA6BqD,SAAS,KAAKvD,MAA3C,IAAqDuB,UAArD,GACG9B,QADH,GAEG,IAHN,CADF;AAOD;;SCpTe4E,YAAYC;AAG1B,MAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,CACzBC,SADyB,EAEzBC,WAFyB;AAIzB,QAAIH,MAAJ,EAAY;AACVA,MAAAA,MAAM,CAACI,iBAAP,CAAyBF,SAAzB,EAAoCC,WAApC;AACD,KAFD,MAEO;AACLC,MAAAA,iBAAiB,CAACF,SAAD,EAAYC,WAAZ,CAAjB;AACD;AACF,GATD;;AAWAF,EAAAA,kBAAkB,CAAC/C,aAAD,EAAgBb,iBAAhB,CAAlB;;AACA4D,EAAAA,kBAAkB,CAAChC,YAAD,EAAeH,gBAAf,CAAlB;;AACAmC,EAAAA,kBAAkB,CAACpB,SAAD,EAAYF,aAAZ,CAAlB;;AACAsB,EAAAA,kBAAkB,CAACJ,UAAD,EAAaD,cAAb,CAAlB;AAED;;;;;;;;;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("@plasmicapp/host/registerComponent")),n=require("@plasmicapp/host"),a=e(require("constate")),r=require("react"),
|
|
1
|
+
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("@plasmicapp/host/registerComponent")),n=require("@plasmicapp/host"),a=e(require("constate")),r=require("react"),o=e(r);function i(){return(i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e}).apply(this,arguments)}var s=function(){};function l(e){return{type:"default-component",kind:"button",props:{children:{type:"text",value:e}}}}var p=r.createContext(!1);function c(e){var t=r.useState(e.initialKey),n=t[0],a=t[1],o=r.useState(void 0);return{tabKey:n,bbox:o[0],setTabKey:a,setBbox:o[1]}}var b=a(c),u=b[0],d=b[1];function y(){var e=d();return"setTabKey"in e?e:void 0}var h="@plasmicpkgs/plasmic-tabs",m={name:"hostless-tabs-container",displayName:"Tabs Container",importName:"TabsContainer",importPath:h,providesData:!0,defaultStyles:{width:"stretch",padding:"8px"},props:{initialKey:{type:"string",description:"Key of the initially selected tab",defaultValue:"tab1"},previewKey:{type:"string",description:"SShow this key while editing in Plasmic Studio"},previewAll:{type:"boolean",description:"Reveal all tab contents while editing in Plasmic Studio"},children:{type:"slot",defaultValue:{type:"vbox",children:[{type:"hbox",children:[{type:"component",name:"hostless-tab-button",props:{tabKey:"tab1",children:l("Tab 1")}},{type:"component",name:"hostless-tab-button",props:{tabKey:"tab2",children:l("Tab 2")}},{type:"component",name:"hostless-tab-underline"}]},{type:"vbox",children:[{type:"component",name:"hostless-tab-content",props:{tabKey:"tab1",children:[{type:"vbox",children:["Some content for tab 1"]}]}},{type:"component",name:"hostless-tab-content",props:{tabKey:"tab2",children:[{type:"vbox",children:["Some content for tab 2"]}]}}]}]}}}};function v(e){var t=e.children,a=e.initialKey,r=e.previewKey,i=e.previewAll,s=void 0!==i&&i,l=!!n.usePlasmicCanvasContext();return o.createElement(u,{initialKey:a},o.createElement(p.Provider,{value:l&&s},o.createElement(f,{previewKey:r||a},t)))}function f(e){var t=e.children,a=e.previewKey,r=n.usePlasmicCanvasContext(),i=function(e){if(!e)throw new Error("unexpected nil");return e}(y()).tabKey;return o.createElement(n.DataProvider,{name:"currentTabKey",data:r&&a||i},t)}var x={name:"hostless-tab-underline",displayName:"Tab Underline",importName:"TabUnderline",importPath:h,props:{children:{type:"slot"}},defaultStyles:{background:"#7777ff",height:"2px"}};function K(e){var t,n=e.className,a=(null!=(t=y())?t:{bbox:void 0}).bbox;return a?o.createElement("div",{className:n,style:i({},JSON.parse(JSON.stringify(a)),{top:void 0,bottom:0,position:"absolute",transition:".4s ease all"})}):null}var T={name:"hostless-tab-button",isAttachment:!0,displayName:"Tab Button",importName:"TabButton",importPath:h,props:{tabKey:{type:"string",description:"The answer value selecting this choice sets"},children:{type:"slot",defaultValue:l("Some tab")}},defaultStyles:{width:"hug"}};function g(e){var t=e.className,n=e.children,a=e.tabKey,i=y(),l=r.useRef(null),p=null!=i?i:{tabKey:void 0,setTabKey:s,bbox:void 0,setBbox:s},c=p.tabKey,b=p.setTabKey,u=p.setBbox;return r.useEffect((function(){a===c&&u({width:l.current.offsetWidth,left:l.current.offsetLeft})}),[l.current,u,JSON.stringify(p.bbox),a,c]),o.createElement("div",{className:t,ref:l},r.cloneElement(o.Children.toArray(n)[0],{isActive:a&&c&&c===a,onClick:function(){b(a)}}))}var C={name:"hostless-tab-content",isAttachment:!0,displayName:"Tab Content",importName:"TabContent",importPath:h,props:{tabKey:{type:"string",description:"The answer value selecting this choice sets"},children:{type:"slot",defaultValue:{type:"vbox",children:{type:"text",value:"This is some tab content"}}}}};function w(e){var t=e.children,n=e.tabKey,a=y(),i=r.useContext(p);return o.createElement(o.Fragment,null,void 0===a||(null!=a?a:{tabKey:void 0}).tabKey===n||i?t:null)}exports.TabButton=g,exports.TabButtonMeta=T,exports.TabContent=w,exports.TabContentMeta=C,exports.TabUnderline=K,exports.TabUnderlineMeta=x,exports.TabsContainer=v,exports.TabsContainerMeta=m,exports.registerAll=function(e){var n=function(n,a){e?e.registerComponent(n,a):t(n,a)};n(v,m),n(K,x),n(g,T),n(w,C)};
|
|
2
2
|
//# sourceMappingURL=plasmic-tabs.cjs.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plasmic-tabs.cjs.production.min.js","sources":["../src/tabs.tsx","../src/index.tsx"],"sourcesContent":["import { DataProvider, usePlasmicCanvasContext,ComponentMeta } from \"@plasmicapp/host\";\nimport constate from \"constate\";\nimport React, {\n cloneElement,\n createContext,\n ReactElement,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\n\nconst noop = ()=>{};\n\nfunction defaultButtonChildren(label: string) {\n return {\n type: \"default-component\",\n kind: \"button\",\n props: {\n children: {\n type: \"text\",\n value: label,\n },\n },\n } as const;\n}\nexport interface TabsProviderProps {\n children?: ReactNode;\n initialKey?: string;\n previewKey?: string;\n previewAll?: boolean;\n}\n\nconst DebugContext = createContext(false);\n\nfunction useTabsData({ initialKey }: { initialKey?: string }) {\n const [tabKey, setTabKey] = useState<string | undefined>(initialKey);\n const [bbox, setBbox] = useState<{ left: number; width: number } | undefined>(\n undefined\n );\n return {\n tabKey,\n bbox,\n setTabKey,\n setBbox,\n };\n}\n\nconst [TabsProvider, useTabsContextUnsafe] = constate(useTabsData);\n\nfunction useTabsContext() {\n const result = useTabsContextUnsafe();\n return \"setTabKey\" in result ? result : undefined;\n}\nconst modulePath=\"@plasmicpkgs/plasmic-tabs\"\n\nexport const TabsContainerMeta: ComponentMeta<TabsProviderProps> = {\n name: \"TabsContainer\",\n displayName: \"Tabs Container\",\n importName: \"TabsContainer\",\n importPath: modulePath,\n providesData:true,\n defaultStyles: {\n width: \"stretch\",\n padding: \"8px\",\n },\n props: {\n initialKey: {\n type: \"string\",\n description: \"Key of the initially selected tab\",\n defaultValue: \"tab1\",\n },\n previewKey: {\n type: \"string\",\n description: \"SShow this key while editing in Plasmic Studio\",\n },\n previewAll: {\n type: \"boolean\",\n description: \"Reveal all tab contents while editing in Plasmic Studio\",\n },\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"vbox\",\n children: [\n {\n type: \"hbox\",\n children: [\n {\n type: \"component\",\n name: \"TabButton\",\n props: {\n tabKey: \"tab1\",\n children:defaultButtonChildren(\"Tab 1\")\n },\n },\n {\n type: \"component\",\n name: \"TabButton\",\n props: {\n tabKey: \"tab2\",\n children:defaultButtonChildren(\"Tab 2\")\n },\n },\n {\n type: \"component\",\n name: \"TabUnderline\",\n },\n ],\n },\n {\n type: \"vbox\",\n children: [\n {\n type: \"component\",\n name: \"TabContent\",\n props: {\n tabKey: \"tab1\",\n children: [\n {\n type: \"vbox\",\n children: [\"Some content for tab 1\"],\n },\n ],\n },\n },\n {\n type: \"component\",\n name: \"TabContent\",\n props: {\n tabKey: \"tab2\",\n children: [\n {\n type: \"vbox\",\n children: [\"Some content for tab 2\"],\n },\n ],\n },\n },\n ],\n },\n ],\n },\n },\n },\n };\n\n\nexport function TabsContainer({\n children,\n initialKey,\n previewKey,\n previewAll = false,\n}: TabsProviderProps) {\n const inEditor = !!usePlasmicCanvasContext();\n return (\n <TabsProvider initialKey={initialKey}>\n <DebugContext.Provider value={inEditor && previewAll}>\n <Helper previewKey={previewKey || initialKey}>{children}</Helper>\n </DebugContext.Provider>\n </TabsProvider>\n );\n}\n\nfunction ensure<T>(x: T | undefined | null) {\n if (!x) {\n throw new Error(\"unexpected nil\");\n }\n return x;\n}\n\nfunction Helper({\n children,\n previewKey,\n}: {\n previewKey?: string;\n children?: ReactNode;\n}) {\n const inEditor = usePlasmicCanvasContext();\n const { tabKey } = ensure(useTabsContext());\n const effectiveKey = inEditor ? previewKey || tabKey : tabKey;\n return (\n <DataProvider name={\"currentTabKey\"} data={effectiveKey}>\n {children}\n </DataProvider>\n );\n}\n\nexport interface TabUnderlineProps {\n className?: string;\n}\n\nexport const TabUnderlineMeta:ComponentMeta <TabUnderlineProps>={\n name: \"TabUnderline\",\n displayName: \"Tab Underline\",\n importName: \"TabUnderline\",\n importPath: modulePath,\n props: {\n children: {\n type: \"slot\",\n },\n },\n defaultStyles: {\n background: \"#7777ff\",\n height: \"2px\",\n },\n}\n\n\nexport function TabUnderline({ className }: TabUnderlineProps) {\n const { bbox } = useTabsContext() ?? { bbox: undefined };\n return bbox ? (\n <div\n className={className}\n style={{\n ...JSON.parse(JSON.stringify(bbox)),\n top: undefined,\n bottom: 0,\n position: \"absolute\",\n transition: \".4s ease all\",\n }}\n ></div>\n ) : null;\n}\n\nexport interface TabButtonProps {\n className?: string;\n children?: ReactNode;\n tabKey?: string;\n}\n\nexport const TabButtonMeta:ComponentMeta<TabButtonProps>={\n name: \"TabButton\",\n isAttachment: true,\n displayName: \"Tab Button\",\n importName: \"TabButton\",\n importPath: modulePath,\n props: {\n tabKey: {\n type: \"string\",\n description: \"The answer value selecting this choice sets\",\n },\n children: {\n type: \"slot\",\n defaultValue:defaultButtonChildren(\"Some tab\")\n },\n },\n defaultStyles: {\n width: \"hug\",\n },\n}\n\nexport function TabButton({ className, children, tabKey }: TabButtonProps) {\n const tabsContext = useTabsContext();\n const ref = useRef<HTMLDivElement>(null);\n const { tabKey: activeKey, setTabKey, bbox, setBbox } = tabsContext ?? {\n tabKey: undefined,\n setTabKey: noop,\n bbox: undefined,\n setBbox:noop,\n };\n useEffect(() => {\n if (tabKey === activeKey) {\n setBbox({\n width: ref.current!.offsetWidth,\n left: ref.current!.offsetLeft,\n });\n }\n }, [ref.current, setBbox, JSON.stringify(bbox), tabKey, activeKey]);\n return (\n <div className={className} ref={ref}>\n {cloneElement(React.Children.toArray(children)[0] as ReactElement, {\n isActive: tabKey && activeKey && activeKey === tabKey,\n onClick: () => {\n setTabKey(tabKey);\n },\n })}\n </div>\n );\n}\n\nexport interface TabContentProps {\n children?: ReactNode;\n tabKey?: string;\n}\n\nexport const TabContentMeta:ComponentMeta<TabContentProps>={\n name: \"TabContent\",\n isAttachment: true,\n displayName: \"Tab Content\",\n importName: \"TabContent\",\n importPath: modulePath,\n props: {\n tabKey: {\n type: \"string\",\n description: \"The answer value selecting this choice sets\",\n },\n children: {\n type: \"slot\",\n defaultValue: {\n type:\"vbox\",\n children:{\n type:\"text\",\n value:\"This is some tab content\"\n }\n },\n },\n },\n}\nexport function TabContent({ children, tabKey }: TabContentProps) {\n const tabsContext = useTabsContext();\n const previewAll = useContext(DebugContext);\n const { tabKey: activeKey } = tabsContext ?? { tabKey: undefined };\n return (\n <>\n {tabsContext === undefined || activeKey === tabKey || previewAll\n ? children\n : null}\n </>\n );\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\n\nimport {\n TabsContainer,\n TabsContainerMeta,\n TabUnderline,\n TabUnderlineMeta,\n TabButton,\n TabButtonMeta,\n TabContent, TabContentMeta\n} from \"./tabs\";\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n}) {\n const _registerComponent = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: ComponentMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerComponent(Component, defaultMeta);\n } else {\n registerComponent(Component, defaultMeta);\n }\n };\n \n _registerComponent(TabsContainer, TabsContainerMeta);\n _registerComponent(TabUnderline, TabUnderlineMeta);\n _registerComponent(TabButton, TabButtonMeta);\n _registerComponent(TabContent, TabContentMeta);\n\n}\n\nexport * from \"./tabs\";\n"],"names":["noop","defaultButtonChildren","label","type","kind","props","children","value","DebugContext","createContext","useTabsData","useState","initialKey","tabKey","setTabKey","undefined","bbox","setBbox","constate","TabsProvider","useTabsContextUnsafe","useTabsContext","result","modulePath","TabsContainerMeta","name","displayName","importName","importPath","providesData","defaultStyles","width","padding","description","defaultValue","previewKey","previewAll","TabsContainer","inEditor","usePlasmicCanvasContext","React","Provider","Helper","x","Error","ensure","DataProvider","data","TabUnderlineMeta","background","height","TabUnderline","className","style","JSON","parse","stringify","top","bottom","position","transition","TabButtonMeta","isAttachment","TabButton","tabsContext","ref","useRef","activeKey","useEffect","current","offsetWidth","left","offsetLeft","cloneElement","Children","toArray","isActive","onClick","TabContentMeta","TabContent","useContext","loader","_registerComponent","Component","defaultMeta","registerComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plasmic-tabs.cjs.production.min.js","sources":["../src/tabs.tsx","../src/index.tsx"],"sourcesContent":["import { DataProvider, usePlasmicCanvasContext,ComponentMeta } from \"@plasmicapp/host\";\nimport constate from \"constate\";\nimport React, {\n cloneElement,\n createContext,\n ReactElement,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\n\nconst noop = ()=>{};\n\nfunction defaultButtonChildren(label: string) {\n return {\n type: \"default-component\",\n kind: \"button\",\n props: {\n children: {\n type: \"text\",\n value: label,\n },\n },\n } as const;\n}\nexport interface TabsProviderProps {\n children?: ReactNode;\n initialKey?: string;\n previewKey?: string;\n previewAll?: boolean;\n}\n\nconst DebugContext = createContext(false);\n\nfunction useTabsData({ initialKey }: { initialKey?: string }) {\n const [tabKey, setTabKey] = useState<string | undefined>(initialKey);\n const [bbox, setBbox] = useState<{ left: number; width: number } | undefined>(\n undefined\n );\n return {\n tabKey,\n bbox,\n setTabKey,\n setBbox,\n };\n}\n\nconst [TabsProvider, useTabsContextUnsafe] = constate(useTabsData);\n\nfunction useTabsContext() {\n const result = useTabsContextUnsafe();\n return \"setTabKey\" in result ? result : undefined;\n}\nconst modulePath=\"@plasmicpkgs/plasmic-tabs\"\n\nexport const TabsContainerMeta: ComponentMeta<TabsProviderProps> = {\n name: \"hostless-tabs-container\",\n displayName: \"Tabs Container\",\n importName: \"TabsContainer\",\n importPath: modulePath,\n providesData:true,\n defaultStyles: {\n width: \"stretch\",\n padding: \"8px\",\n },\n props: {\n initialKey: {\n type: \"string\",\n description: \"Key of the initially selected tab\",\n defaultValue: \"tab1\",\n },\n previewKey: {\n type: \"string\",\n description: \"SShow this key while editing in Plasmic Studio\",\n },\n previewAll: {\n type: \"boolean\",\n description: \"Reveal all tab contents while editing in Plasmic Studio\",\n },\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"vbox\",\n children: [\n {\n type: \"hbox\",\n children: [\n {\n type: \"component\",\n name: \"hostless-tab-button\",\n props: {\n tabKey: \"tab1\",\n children:defaultButtonChildren(\"Tab 1\")\n },\n },\n {\n type: \"component\",\n name: \"hostless-tab-button\",\n props: {\n tabKey: \"tab2\",\n children:defaultButtonChildren(\"Tab 2\")\n },\n },\n {\n type: \"component\",\n name: \"hostless-tab-underline\",\n },\n ],\n },\n {\n type: \"vbox\",\n children: [\n {\n type: \"component\",\n name: \"hostless-tab-content\",\n props: {\n tabKey: \"tab1\",\n children: [\n {\n type: \"vbox\",\n children: [\"Some content for tab 1\"],\n },\n ],\n },\n },\n {\n type: \"component\",\n name: \"hostless-tab-content\",\n props: {\n tabKey: \"tab2\",\n children: [\n {\n type: \"vbox\",\n children: [\"Some content for tab 2\"],\n },\n ],\n },\n },\n ],\n },\n ],\n },\n },\n },\n };\n\n\nexport function TabsContainer({\n children,\n initialKey,\n previewKey,\n previewAll = false,\n}: TabsProviderProps) {\n const inEditor = !!usePlasmicCanvasContext();\n return (\n <TabsProvider initialKey={initialKey}>\n <DebugContext.Provider value={inEditor && previewAll}>\n <Helper previewKey={previewKey || initialKey}>{children}</Helper>\n </DebugContext.Provider>\n </TabsProvider>\n );\n}\n\nfunction ensure<T>(x: T | undefined | null) {\n if (!x) {\n throw new Error(\"unexpected nil\");\n }\n return x;\n}\n\nfunction Helper({\n children,\n previewKey,\n}: {\n previewKey?: string;\n children?: ReactNode;\n}) {\n const inEditor = usePlasmicCanvasContext();\n const { tabKey } = ensure(useTabsContext());\n const effectiveKey = inEditor ? previewKey || tabKey : tabKey;\n return (\n <DataProvider name={\"currentTabKey\"} data={effectiveKey}>\n {children}\n </DataProvider>\n );\n}\n\nexport interface TabUnderlineProps {\n className?: string;\n}\n\nexport const TabUnderlineMeta:ComponentMeta <TabUnderlineProps>={\n name: \"hostless-tab-underline\",\n displayName: \"Tab Underline\",\n importName: \"TabUnderline\",\n importPath: modulePath,\n props: {\n children: {\n type: \"slot\",\n },\n },\n defaultStyles: {\n background: \"#7777ff\",\n height: \"2px\",\n },\n}\n\n\nexport function TabUnderline({ className }: TabUnderlineProps) {\n const { bbox } = useTabsContext() ?? { bbox: undefined };\n return bbox ? (\n <div\n className={className}\n style={{\n ...JSON.parse(JSON.stringify(bbox)),\n top: undefined,\n bottom: 0,\n position: \"absolute\",\n transition: \".4s ease all\",\n }}\n ></div>\n ) : null;\n}\n\nexport interface TabButtonProps {\n className?: string;\n children?: ReactNode;\n tabKey?: string;\n}\n\nexport const TabButtonMeta:ComponentMeta<TabButtonProps>={\n name: \"hostless-tab-button\",\n isAttachment: true,\n displayName: \"Tab Button\",\n importName: \"TabButton\",\n importPath: modulePath,\n props: {\n tabKey: {\n type: \"string\",\n description: \"The answer value selecting this choice sets\",\n },\n children: {\n type: \"slot\",\n defaultValue:defaultButtonChildren(\"Some tab\")\n },\n },\n defaultStyles: {\n width: \"hug\",\n },\n}\n\nexport function TabButton({ className, children, tabKey }: TabButtonProps) {\n const tabsContext = useTabsContext();\n const ref = useRef<HTMLDivElement>(null);\n const { tabKey: activeKey, setTabKey, bbox, setBbox } = tabsContext ?? {\n tabKey: undefined,\n setTabKey: noop,\n bbox: undefined,\n setBbox:noop,\n };\n useEffect(() => {\n if (tabKey === activeKey) {\n setBbox({\n width: ref.current!.offsetWidth,\n left: ref.current!.offsetLeft,\n });\n }\n }, [ref.current, setBbox, JSON.stringify(bbox), tabKey, activeKey]);\n return (\n <div className={className} ref={ref}>\n {cloneElement(React.Children.toArray(children)[0] as ReactElement, {\n isActive: tabKey && activeKey && activeKey === tabKey,\n onClick: () => {\n setTabKey(tabKey);\n },\n })}\n </div>\n );\n}\n\nexport interface TabContentProps {\n children?: ReactNode;\n tabKey?: string;\n}\n\nexport const TabContentMeta:ComponentMeta<TabContentProps>={\n name: \"hostless-tab-content\",\n isAttachment: true,\n displayName: \"Tab Content\",\n importName: \"TabContent\",\n importPath: modulePath,\n props: {\n tabKey: {\n type: \"string\",\n description: \"The answer value selecting this choice sets\",\n },\n children: {\n type: \"slot\",\n defaultValue: {\n type:\"vbox\",\n children:{\n type:\"text\",\n value:\"This is some tab content\"\n }\n },\n },\n },\n}\nexport function TabContent({ children, tabKey }: TabContentProps) {\n const tabsContext = useTabsContext();\n const previewAll = useContext(DebugContext);\n const { tabKey: activeKey } = tabsContext ?? { tabKey: undefined };\n return (\n <>\n {tabsContext === undefined || activeKey === tabKey || previewAll\n ? children\n : null}\n </>\n );\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\n\nimport {\n TabsContainer,\n TabsContainerMeta,\n TabUnderline,\n TabUnderlineMeta,\n TabButton,\n TabButtonMeta,\n TabContent, TabContentMeta\n} from \"./tabs\";\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n}) {\n const _registerComponent = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: ComponentMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerComponent(Component, defaultMeta);\n } else {\n registerComponent(Component, defaultMeta);\n }\n };\n \n _registerComponent(TabsContainer, TabsContainerMeta);\n _registerComponent(TabUnderline, TabUnderlineMeta);\n _registerComponent(TabButton, TabButtonMeta);\n _registerComponent(TabContent, TabContentMeta);\n\n}\n\nexport * from \"./tabs\";\n"],"names":["noop","defaultButtonChildren","label","type","kind","props","children","value","DebugContext","createContext","useTabsData","useState","initialKey","tabKey","setTabKey","undefined","bbox","setBbox","constate","TabsProvider","useTabsContextUnsafe","useTabsContext","result","modulePath","TabsContainerMeta","name","displayName","importName","importPath","providesData","defaultStyles","width","padding","description","defaultValue","previewKey","previewAll","TabsContainer","inEditor","usePlasmicCanvasContext","React","Provider","Helper","x","Error","ensure","DataProvider","data","TabUnderlineMeta","background","height","TabUnderline","className","style","JSON","parse","stringify","top","bottom","position","transition","TabButtonMeta","isAttachment","TabButton","tabsContext","ref","useRef","activeKey","useEffect","current","offsetWidth","left","offsetLeft","cloneElement","Children","toArray","isActive","onClick","TabContentMeta","TabContent","useContext","loader","_registerComponent","Component","defaultMeta","registerComponent"],"mappings":"ieAcA,IAAMA,EAAO,aAEb,SAASC,EAAsBC,SACtB,CACLC,KAAM,oBACNC,KAAM,SACNC,MAAO,CACLC,SAAU,CACRH,KAAM,OACNI,MAAOL,KAYf,IAAMM,EAAeC,iBAAc,GAEnC,SAASC,WACqBC,aADPC,YACdC,OAAQC,SACSH,gBACtBI,SAEK,CACLF,OAAAA,EACAG,UACAF,UAAAA,EACAG,cAIJ,MAA6CC,EAASR,GAA/CS,OAAcC,OAErB,SAASC,QACDC,EAASF,UACR,cAAeE,EAASA,OAASP,EAE1C,IAAMQ,EAAW,4BAEJC,EAAsD,CAC/DC,KAAM,0BACNC,YAAa,iBACbC,WAAY,gBACZC,WAAYL,EACZM,cAAa,EACbC,cAAe,CACfC,MAAO,UACPC,QAAS,OAET3B,MAAO,CACPO,WAAY,CACVT,KAAM,SACN8B,YAAa,oCACbC,aAAc,QAEhBC,WAAY,CACVhC,KAAM,SACN8B,YAAa,kDAEfG,WAAY,CACVjC,KAAM,UACN8B,YAAa,2DAEf3B,SAAU,CACRH,KAAM,OACN+B,aAAc,CACZ/B,KAAM,OACNG,SAAU,CACR,CACEH,KAAM,OACNG,SAAU,CACR,CACEH,KAAM,YACNsB,KAAM,sBACNpB,MAAO,CACLQ,OAAQ,OACRP,SAASL,EAAsB,WAGnC,CACEE,KAAM,YACNsB,KAAM,sBACNpB,MAAO,CACLQ,OAAQ,OACRP,SAASL,EAAsB,WAGnC,CACEE,KAAM,YACNsB,KAAM,4BAIZ,CACEtB,KAAM,OACNG,SAAU,CACR,CACEH,KAAM,YACNsB,KAAM,uBACNpB,MAAO,CACLQ,OAAQ,OACRP,SAAU,CACR,CACEH,KAAM,OACNG,SAAU,CAAC,8BAKnB,CACEH,KAAM,YACNsB,KAAM,uBACNpB,MAAO,CACLQ,OAAQ,OACRP,SAAU,CACR,CACEH,KAAM,OACNG,SAAU,CAAC,8CAcjB+B,SACd/B,IAAAA,SACAM,IAAAA,WACAuB,IAAAA,eACAC,WAAAA,gBAEME,IAAaC,mCAEjBC,gBAACrB,GAAaP,WAAYA,GACxB4B,gBAAChC,EAAaiC,UAASlC,MAAO+B,GAAYF,GACxCI,gBAACE,GAAOP,WAAYA,GAAcvB,GAAaN,KAavD,SAASoC,SACPpC,IAAAA,SACA6B,IAAAA,WAKMG,EAAWC,4BACT1B,EAfV,SAAmB8B,OACZA,QACG,IAAIC,MAAM,yBAEXD,EAWYE,CAAOxB,KAAlBR,cAGN2B,gBAACM,gBAAarB,KAAM,gBAAiBsB,KAFlBT,GAAWH,GAAuBtB,GAGlDP,OASM0C,EAAmD,CAC5DvB,KAAM,yBACNC,YAAa,gBACbC,WAAY,eACZC,WAAYL,EACZlB,MAAO,CACPC,SAAU,CACRH,KAAM,SAGR2B,cAAe,CACfmB,WAAY,UACZC,OAAQ,iBAKIC,WAAeC,IAAAA,UACrBpC,YAASK,OAAoB,CAAEL,UAAMD,IAArCC,YACDA,EACLwB,uBACEY,UAAWA,EACXC,WACKC,KAAKC,MAAMD,KAAKE,UAAUxC,KAC7ByC,SAAK1C,EACL2C,OAAQ,EACRC,SAAU,WACVC,WAAY,mBAGd,SASOC,EAA4C,CACrDpC,KAAM,sBACNqC,cAAc,EACdpC,YAAa,aACbC,WAAY,YACZC,WAAYL,EACZlB,MAAO,CACPQ,OAAQ,CACNV,KAAM,SACN8B,YAAa,+CAEf3B,SAAU,CACRH,KAAM,OACN+B,aAAajC,EAAsB,cAGvC6B,cAAe,CACbC,MAAO,iBAIKgC,SAAYX,IAAAA,UAAW9C,IAAAA,SAAUO,IAAAA,OACzCmD,EAAc3C,IACd4C,EAAMC,SAAuB,cACqBF,EAAAA,EAAe,CACrEnD,YAAQE,EACRD,UAAWd,EACXgB,UAAMD,EACNE,QAAQjB,GAJMmE,IAARtD,OAAmBC,IAAAA,UAAiBG,IAAAA,eAM5CmD,aAAU,WACJvD,IAAWsD,GACblD,EAAQ,CACNc,MAAOkC,EAAII,QAASC,YACpBC,KAAMN,EAAII,QAASG,eAGtB,CAACP,EAAII,QAASpD,EAASqC,KAAKE,YAbOxC,MAaUH,EAAQsD,IAEtD3B,uBAAKY,UAAWA,EAAWa,IAAKA,GAC7BQ,eAAajC,EAAMkC,SAASC,QAAQrE,GAAU,GAAoB,CACjEsE,SAAU/D,GAAUsD,GAAaA,IAActD,EAC/CgE,QAAS,WACP/D,EAAUD,WAYPiE,EAA8C,CACzDrD,KAAM,uBACNqC,cAAc,EACdpC,YAAa,cACbC,WAAY,aACZC,WAAYL,EACZlB,MAAO,CACLQ,OAAQ,CACNV,KAAM,SACN8B,YAAa,+CAEf3B,SAAU,CACRH,KAAM,OACN+B,aAAc,CACd/B,KAAK,OACLG,SAAS,CACPH,KAAK,OACLI,MAAM,yCAMEwE,SAAazE,IAAAA,SAAUO,IAAAA,OAC/BmD,EAAc3C,IACde,EAAa4C,aAAWxE,UAG5BgC,qCACmBzB,IAAhBiD,UAHyBA,EAAAA,EAAe,CAAEnD,YAAQE,IAA/CF,SAGwCA,GAAUuB,EAClD9B,EACA,mOCjTkB2E,OAGpBC,EAAqB,SACzBC,EACAC,GAEIH,EACFA,EAAOI,kBAAkBF,EAAWC,GAEpCC,EAAkBF,EAAWC,IAIjCF,EAAmB7C,EAAeb,GAClC0D,EAAmB/B,EAAcH,GACjCkC,EAAmBnB,EAAWF,GAC9BqB,EAAmBH,EAAYD"}
|
package/dist/plasmic-tabs.esm.js
CHANGED
|
@@ -68,7 +68,7 @@ function useTabsContext() {
|
|
|
68
68
|
|
|
69
69
|
var modulePath = "@plasmicpkgs/plasmic-tabs";
|
|
70
70
|
var TabsContainerMeta = {
|
|
71
|
-
name: "
|
|
71
|
+
name: "hostless-tabs-container",
|
|
72
72
|
displayName: "Tabs Container",
|
|
73
73
|
importName: "TabsContainer",
|
|
74
74
|
importPath: modulePath,
|
|
@@ -99,27 +99,27 @@ var TabsContainerMeta = {
|
|
|
99
99
|
type: "hbox",
|
|
100
100
|
children: [{
|
|
101
101
|
type: "component",
|
|
102
|
-
name: "
|
|
102
|
+
name: "hostless-tab-button",
|
|
103
103
|
props: {
|
|
104
104
|
tabKey: "tab1",
|
|
105
105
|
children: /*#__PURE__*/defaultButtonChildren("Tab 1")
|
|
106
106
|
}
|
|
107
107
|
}, {
|
|
108
108
|
type: "component",
|
|
109
|
-
name: "
|
|
109
|
+
name: "hostless-tab-button",
|
|
110
110
|
props: {
|
|
111
111
|
tabKey: "tab2",
|
|
112
112
|
children: /*#__PURE__*/defaultButtonChildren("Tab 2")
|
|
113
113
|
}
|
|
114
114
|
}, {
|
|
115
115
|
type: "component",
|
|
116
|
-
name: "
|
|
116
|
+
name: "hostless-tab-underline"
|
|
117
117
|
}]
|
|
118
118
|
}, {
|
|
119
119
|
type: "vbox",
|
|
120
120
|
children: [{
|
|
121
121
|
type: "component",
|
|
122
|
-
name: "
|
|
122
|
+
name: "hostless-tab-content",
|
|
123
123
|
props: {
|
|
124
124
|
tabKey: "tab1",
|
|
125
125
|
children: [{
|
|
@@ -129,7 +129,7 @@ var TabsContainerMeta = {
|
|
|
129
129
|
}
|
|
130
130
|
}, {
|
|
131
131
|
type: "component",
|
|
132
|
-
name: "
|
|
132
|
+
name: "hostless-tab-content",
|
|
133
133
|
props: {
|
|
134
134
|
tabKey: "tab2",
|
|
135
135
|
children: [{
|
|
@@ -183,7 +183,7 @@ function Helper(_ref3) {
|
|
|
183
183
|
}
|
|
184
184
|
|
|
185
185
|
var TabUnderlineMeta = {
|
|
186
|
-
name: "
|
|
186
|
+
name: "hostless-tab-underline",
|
|
187
187
|
displayName: "Tab Underline",
|
|
188
188
|
importName: "TabUnderline",
|
|
189
189
|
importPath: modulePath,
|
|
@@ -218,7 +218,7 @@ function TabUnderline(_ref4) {
|
|
|
218
218
|
}) : null;
|
|
219
219
|
}
|
|
220
220
|
var TabButtonMeta = {
|
|
221
|
-
name: "
|
|
221
|
+
name: "hostless-tab-button",
|
|
222
222
|
isAttachment: true,
|
|
223
223
|
displayName: "Tab Button",
|
|
224
224
|
importName: "TabButton",
|
|
@@ -274,7 +274,7 @@ function TabButton(_ref6) {
|
|
|
274
274
|
}));
|
|
275
275
|
}
|
|
276
276
|
var TabContentMeta = {
|
|
277
|
-
name: "
|
|
277
|
+
name: "hostless-tab-content",
|
|
278
278
|
isAttachment: true,
|
|
279
279
|
displayName: "Tab Content",
|
|
280
280
|
importName: "TabContent",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plasmic-tabs.esm.js","sources":["../src/tabs.tsx","../src/index.tsx"],"sourcesContent":["import { DataProvider, usePlasmicCanvasContext,ComponentMeta } from \"@plasmicapp/host\";\nimport constate from \"constate\";\nimport React, {\n cloneElement,\n createContext,\n ReactElement,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\n\nconst noop = ()=>{};\n\nfunction defaultButtonChildren(label: string) {\n return {\n type: \"default-component\",\n kind: \"button\",\n props: {\n children: {\n type: \"text\",\n value: label,\n },\n },\n } as const;\n}\nexport interface TabsProviderProps {\n children?: ReactNode;\n initialKey?: string;\n previewKey?: string;\n previewAll?: boolean;\n}\n\nconst DebugContext = createContext(false);\n\nfunction useTabsData({ initialKey }: { initialKey?: string }) {\n const [tabKey, setTabKey] = useState<string | undefined>(initialKey);\n const [bbox, setBbox] = useState<{ left: number; width: number } | undefined>(\n undefined\n );\n return {\n tabKey,\n bbox,\n setTabKey,\n setBbox,\n };\n}\n\nconst [TabsProvider, useTabsContextUnsafe] = constate(useTabsData);\n\nfunction useTabsContext() {\n const result = useTabsContextUnsafe();\n return \"setTabKey\" in result ? result : undefined;\n}\nconst modulePath=\"@plasmicpkgs/plasmic-tabs\"\n\nexport const TabsContainerMeta: ComponentMeta<TabsProviderProps> = {\n name: \"TabsContainer\",\n displayName: \"Tabs Container\",\n importName: \"TabsContainer\",\n importPath: modulePath,\n providesData:true,\n defaultStyles: {\n width: \"stretch\",\n padding: \"8px\",\n },\n props: {\n initialKey: {\n type: \"string\",\n description: \"Key of the initially selected tab\",\n defaultValue: \"tab1\",\n },\n previewKey: {\n type: \"string\",\n description: \"SShow this key while editing in Plasmic Studio\",\n },\n previewAll: {\n type: \"boolean\",\n description: \"Reveal all tab contents while editing in Plasmic Studio\",\n },\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"vbox\",\n children: [\n {\n type: \"hbox\",\n children: [\n {\n type: \"component\",\n name: \"TabButton\",\n props: {\n tabKey: \"tab1\",\n children:defaultButtonChildren(\"Tab 1\")\n },\n },\n {\n type: \"component\",\n name: \"TabButton\",\n props: {\n tabKey: \"tab2\",\n children:defaultButtonChildren(\"Tab 2\")\n },\n },\n {\n type: \"component\",\n name: \"TabUnderline\",\n },\n ],\n },\n {\n type: \"vbox\",\n children: [\n {\n type: \"component\",\n name: \"TabContent\",\n props: {\n tabKey: \"tab1\",\n children: [\n {\n type: \"vbox\",\n children: [\"Some content for tab 1\"],\n },\n ],\n },\n },\n {\n type: \"component\",\n name: \"TabContent\",\n props: {\n tabKey: \"tab2\",\n children: [\n {\n type: \"vbox\",\n children: [\"Some content for tab 2\"],\n },\n ],\n },\n },\n ],\n },\n ],\n },\n },\n },\n };\n\n\nexport function TabsContainer({\n children,\n initialKey,\n previewKey,\n previewAll = false,\n}: TabsProviderProps) {\n const inEditor = !!usePlasmicCanvasContext();\n return (\n <TabsProvider initialKey={initialKey}>\n <DebugContext.Provider value={inEditor && previewAll}>\n <Helper previewKey={previewKey || initialKey}>{children}</Helper>\n </DebugContext.Provider>\n </TabsProvider>\n );\n}\n\nfunction ensure<T>(x: T | undefined | null) {\n if (!x) {\n throw new Error(\"unexpected nil\");\n }\n return x;\n}\n\nfunction Helper({\n children,\n previewKey,\n}: {\n previewKey?: string;\n children?: ReactNode;\n}) {\n const inEditor = usePlasmicCanvasContext();\n const { tabKey } = ensure(useTabsContext());\n const effectiveKey = inEditor ? previewKey || tabKey : tabKey;\n return (\n <DataProvider name={\"currentTabKey\"} data={effectiveKey}>\n {children}\n </DataProvider>\n );\n}\n\nexport interface TabUnderlineProps {\n className?: string;\n}\n\nexport const TabUnderlineMeta:ComponentMeta <TabUnderlineProps>={\n name: \"TabUnderline\",\n displayName: \"Tab Underline\",\n importName: \"TabUnderline\",\n importPath: modulePath,\n props: {\n children: {\n type: \"slot\",\n },\n },\n defaultStyles: {\n background: \"#7777ff\",\n height: \"2px\",\n },\n}\n\n\nexport function TabUnderline({ className }: TabUnderlineProps) {\n const { bbox } = useTabsContext() ?? { bbox: undefined };\n return bbox ? (\n <div\n className={className}\n style={{\n ...JSON.parse(JSON.stringify(bbox)),\n top: undefined,\n bottom: 0,\n position: \"absolute\",\n transition: \".4s ease all\",\n }}\n ></div>\n ) : null;\n}\n\nexport interface TabButtonProps {\n className?: string;\n children?: ReactNode;\n tabKey?: string;\n}\n\nexport const TabButtonMeta:ComponentMeta<TabButtonProps>={\n name: \"TabButton\",\n isAttachment: true,\n displayName: \"Tab Button\",\n importName: \"TabButton\",\n importPath: modulePath,\n props: {\n tabKey: {\n type: \"string\",\n description: \"The answer value selecting this choice sets\",\n },\n children: {\n type: \"slot\",\n defaultValue:defaultButtonChildren(\"Some tab\")\n },\n },\n defaultStyles: {\n width: \"hug\",\n },\n}\n\nexport function TabButton({ className, children, tabKey }: TabButtonProps) {\n const tabsContext = useTabsContext();\n const ref = useRef<HTMLDivElement>(null);\n const { tabKey: activeKey, setTabKey, bbox, setBbox } = tabsContext ?? {\n tabKey: undefined,\n setTabKey: noop,\n bbox: undefined,\n setBbox:noop,\n };\n useEffect(() => {\n if (tabKey === activeKey) {\n setBbox({\n width: ref.current!.offsetWidth,\n left: ref.current!.offsetLeft,\n });\n }\n }, [ref.current, setBbox, JSON.stringify(bbox), tabKey, activeKey]);\n return (\n <div className={className} ref={ref}>\n {cloneElement(React.Children.toArray(children)[0] as ReactElement, {\n isActive: tabKey && activeKey && activeKey === tabKey,\n onClick: () => {\n setTabKey(tabKey);\n },\n })}\n </div>\n );\n}\n\nexport interface TabContentProps {\n children?: ReactNode;\n tabKey?: string;\n}\n\nexport const TabContentMeta:ComponentMeta<TabContentProps>={\n name: \"TabContent\",\n isAttachment: true,\n displayName: \"Tab Content\",\n importName: \"TabContent\",\n importPath: modulePath,\n props: {\n tabKey: {\n type: \"string\",\n description: \"The answer value selecting this choice sets\",\n },\n children: {\n type: \"slot\",\n defaultValue: {\n type:\"vbox\",\n children:{\n type:\"text\",\n value:\"This is some tab content\"\n }\n },\n },\n },\n}\nexport function TabContent({ children, tabKey }: TabContentProps) {\n const tabsContext = useTabsContext();\n const previewAll = useContext(DebugContext);\n const { tabKey: activeKey } = tabsContext ?? { tabKey: undefined };\n return (\n <>\n {tabsContext === undefined || activeKey === tabKey || previewAll\n ? children\n : null}\n </>\n );\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\n\nimport {\n TabsContainer,\n TabsContainerMeta,\n TabUnderline,\n TabUnderlineMeta,\n TabButton,\n TabButtonMeta,\n TabContent, TabContentMeta\n} from \"./tabs\";\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n}) {\n const _registerComponent = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: ComponentMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerComponent(Component, defaultMeta);\n } else {\n registerComponent(Component, defaultMeta);\n }\n };\n \n _registerComponent(TabsContainer, TabsContainerMeta);\n _registerComponent(TabUnderline, TabUnderlineMeta);\n _registerComponent(TabButton, TabButtonMeta);\n _registerComponent(TabContent, TabContentMeta);\n\n}\n\nexport * from \"./tabs\";\n"],"names":["noop","defaultButtonChildren","label","type","kind","props","children","value","DebugContext","createContext","useTabsData","initialKey","useState","tabKey","setTabKey","undefined","bbox","setBbox","constate","TabsProvider","useTabsContextUnsafe","useTabsContext","result","modulePath","TabsContainerMeta","name","displayName","importName","importPath","providesData","defaultStyles","width","padding","description","defaultValue","previewKey","previewAll","TabsContainer","inEditor","usePlasmicCanvasContext","React","Provider","Helper","ensure","x","Error","effectiveKey","DataProvider","data","TabUnderlineMeta","background","height","TabUnderline","className","style","JSON","parse","stringify","top","bottom","position","transition","TabButtonMeta","isAttachment","TabButton","tabsContext","ref","useRef","activeKey","useEffect","current","offsetWidth","left","offsetLeft","cloneElement","Children","toArray","isActive","onClick","TabContentMeta","TabContent","useContext","registerAll","loader","_registerComponent","Component","defaultMeta","registerComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plasmic-tabs.esm.js","sources":["../src/tabs.tsx","../src/index.tsx"],"sourcesContent":["import { DataProvider, usePlasmicCanvasContext,ComponentMeta } from \"@plasmicapp/host\";\nimport constate from \"constate\";\nimport React, {\n cloneElement,\n createContext,\n ReactElement,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\n\nconst noop = ()=>{};\n\nfunction defaultButtonChildren(label: string) {\n return {\n type: \"default-component\",\n kind: \"button\",\n props: {\n children: {\n type: \"text\",\n value: label,\n },\n },\n } as const;\n}\nexport interface TabsProviderProps {\n children?: ReactNode;\n initialKey?: string;\n previewKey?: string;\n previewAll?: boolean;\n}\n\nconst DebugContext = createContext(false);\n\nfunction useTabsData({ initialKey }: { initialKey?: string }) {\n const [tabKey, setTabKey] = useState<string | undefined>(initialKey);\n const [bbox, setBbox] = useState<{ left: number; width: number } | undefined>(\n undefined\n );\n return {\n tabKey,\n bbox,\n setTabKey,\n setBbox,\n };\n}\n\nconst [TabsProvider, useTabsContextUnsafe] = constate(useTabsData);\n\nfunction useTabsContext() {\n const result = useTabsContextUnsafe();\n return \"setTabKey\" in result ? result : undefined;\n}\nconst modulePath=\"@plasmicpkgs/plasmic-tabs\"\n\nexport const TabsContainerMeta: ComponentMeta<TabsProviderProps> = {\n name: \"hostless-tabs-container\",\n displayName: \"Tabs Container\",\n importName: \"TabsContainer\",\n importPath: modulePath,\n providesData:true,\n defaultStyles: {\n width: \"stretch\",\n padding: \"8px\",\n },\n props: {\n initialKey: {\n type: \"string\",\n description: \"Key of the initially selected tab\",\n defaultValue: \"tab1\",\n },\n previewKey: {\n type: \"string\",\n description: \"SShow this key while editing in Plasmic Studio\",\n },\n previewAll: {\n type: \"boolean\",\n description: \"Reveal all tab contents while editing in Plasmic Studio\",\n },\n children: {\n type: \"slot\",\n defaultValue: {\n type: \"vbox\",\n children: [\n {\n type: \"hbox\",\n children: [\n {\n type: \"component\",\n name: \"hostless-tab-button\",\n props: {\n tabKey: \"tab1\",\n children:defaultButtonChildren(\"Tab 1\")\n },\n },\n {\n type: \"component\",\n name: \"hostless-tab-button\",\n props: {\n tabKey: \"tab2\",\n children:defaultButtonChildren(\"Tab 2\")\n },\n },\n {\n type: \"component\",\n name: \"hostless-tab-underline\",\n },\n ],\n },\n {\n type: \"vbox\",\n children: [\n {\n type: \"component\",\n name: \"hostless-tab-content\",\n props: {\n tabKey: \"tab1\",\n children: [\n {\n type: \"vbox\",\n children: [\"Some content for tab 1\"],\n },\n ],\n },\n },\n {\n type: \"component\",\n name: \"hostless-tab-content\",\n props: {\n tabKey: \"tab2\",\n children: [\n {\n type: \"vbox\",\n children: [\"Some content for tab 2\"],\n },\n ],\n },\n },\n ],\n },\n ],\n },\n },\n },\n };\n\n\nexport function TabsContainer({\n children,\n initialKey,\n previewKey,\n previewAll = false,\n}: TabsProviderProps) {\n const inEditor = !!usePlasmicCanvasContext();\n return (\n <TabsProvider initialKey={initialKey}>\n <DebugContext.Provider value={inEditor && previewAll}>\n <Helper previewKey={previewKey || initialKey}>{children}</Helper>\n </DebugContext.Provider>\n </TabsProvider>\n );\n}\n\nfunction ensure<T>(x: T | undefined | null) {\n if (!x) {\n throw new Error(\"unexpected nil\");\n }\n return x;\n}\n\nfunction Helper({\n children,\n previewKey,\n}: {\n previewKey?: string;\n children?: ReactNode;\n}) {\n const inEditor = usePlasmicCanvasContext();\n const { tabKey } = ensure(useTabsContext());\n const effectiveKey = inEditor ? previewKey || tabKey : tabKey;\n return (\n <DataProvider name={\"currentTabKey\"} data={effectiveKey}>\n {children}\n </DataProvider>\n );\n}\n\nexport interface TabUnderlineProps {\n className?: string;\n}\n\nexport const TabUnderlineMeta:ComponentMeta <TabUnderlineProps>={\n name: \"hostless-tab-underline\",\n displayName: \"Tab Underline\",\n importName: \"TabUnderline\",\n importPath: modulePath,\n props: {\n children: {\n type: \"slot\",\n },\n },\n defaultStyles: {\n background: \"#7777ff\",\n height: \"2px\",\n },\n}\n\n\nexport function TabUnderline({ className }: TabUnderlineProps) {\n const { bbox } = useTabsContext() ?? { bbox: undefined };\n return bbox ? (\n <div\n className={className}\n style={{\n ...JSON.parse(JSON.stringify(bbox)),\n top: undefined,\n bottom: 0,\n position: \"absolute\",\n transition: \".4s ease all\",\n }}\n ></div>\n ) : null;\n}\n\nexport interface TabButtonProps {\n className?: string;\n children?: ReactNode;\n tabKey?: string;\n}\n\nexport const TabButtonMeta:ComponentMeta<TabButtonProps>={\n name: \"hostless-tab-button\",\n isAttachment: true,\n displayName: \"Tab Button\",\n importName: \"TabButton\",\n importPath: modulePath,\n props: {\n tabKey: {\n type: \"string\",\n description: \"The answer value selecting this choice sets\",\n },\n children: {\n type: \"slot\",\n defaultValue:defaultButtonChildren(\"Some tab\")\n },\n },\n defaultStyles: {\n width: \"hug\",\n },\n}\n\nexport function TabButton({ className, children, tabKey }: TabButtonProps) {\n const tabsContext = useTabsContext();\n const ref = useRef<HTMLDivElement>(null);\n const { tabKey: activeKey, setTabKey, bbox, setBbox } = tabsContext ?? {\n tabKey: undefined,\n setTabKey: noop,\n bbox: undefined,\n setBbox:noop,\n };\n useEffect(() => {\n if (tabKey === activeKey) {\n setBbox({\n width: ref.current!.offsetWidth,\n left: ref.current!.offsetLeft,\n });\n }\n }, [ref.current, setBbox, JSON.stringify(bbox), tabKey, activeKey]);\n return (\n <div className={className} ref={ref}>\n {cloneElement(React.Children.toArray(children)[0] as ReactElement, {\n isActive: tabKey && activeKey && activeKey === tabKey,\n onClick: () => {\n setTabKey(tabKey);\n },\n })}\n </div>\n );\n}\n\nexport interface TabContentProps {\n children?: ReactNode;\n tabKey?: string;\n}\n\nexport const TabContentMeta:ComponentMeta<TabContentProps>={\n name: \"hostless-tab-content\",\n isAttachment: true,\n displayName: \"Tab Content\",\n importName: \"TabContent\",\n importPath: modulePath,\n props: {\n tabKey: {\n type: \"string\",\n description: \"The answer value selecting this choice sets\",\n },\n children: {\n type: \"slot\",\n defaultValue: {\n type:\"vbox\",\n children:{\n type:\"text\",\n value:\"This is some tab content\"\n }\n },\n },\n },\n}\nexport function TabContent({ children, tabKey }: TabContentProps) {\n const tabsContext = useTabsContext();\n const previewAll = useContext(DebugContext);\n const { tabKey: activeKey } = tabsContext ?? { tabKey: undefined };\n return (\n <>\n {tabsContext === undefined || activeKey === tabKey || previewAll\n ? children\n : null}\n </>\n );\n}\n","import registerComponent, {\n ComponentMeta,\n} from \"@plasmicapp/host/registerComponent\";\n\nimport {\n TabsContainer,\n TabsContainerMeta,\n TabUnderline,\n TabUnderlineMeta,\n TabButton,\n TabButtonMeta,\n TabContent, TabContentMeta\n} from \"./tabs\";\n\nexport function registerAll(loader?: {\n registerComponent: typeof registerComponent;\n}) {\n const _registerComponent = <T extends React.ComponentType<any>>(\n Component: T,\n defaultMeta: ComponentMeta<React.ComponentProps<T>>\n ) => {\n if (loader) {\n loader.registerComponent(Component, defaultMeta);\n } else {\n registerComponent(Component, defaultMeta);\n }\n };\n \n _registerComponent(TabsContainer, TabsContainerMeta);\n _registerComponent(TabUnderline, TabUnderlineMeta);\n _registerComponent(TabButton, TabButtonMeta);\n _registerComponent(TabContent, TabContentMeta);\n\n}\n\nexport * from \"./tabs\";\n"],"names":["noop","defaultButtonChildren","label","type","kind","props","children","value","DebugContext","createContext","useTabsData","initialKey","useState","tabKey","setTabKey","undefined","bbox","setBbox","constate","TabsProvider","useTabsContextUnsafe","useTabsContext","result","modulePath","TabsContainerMeta","name","displayName","importName","importPath","providesData","defaultStyles","width","padding","description","defaultValue","previewKey","previewAll","TabsContainer","inEditor","usePlasmicCanvasContext","React","Provider","Helper","ensure","x","Error","effectiveKey","DataProvider","data","TabUnderlineMeta","background","height","TabUnderline","className","style","JSON","parse","stringify","top","bottom","position","transition","TabButtonMeta","isAttachment","TabButton","tabsContext","ref","useRef","activeKey","useEffect","current","offsetWidth","left","offsetLeft","cloneElement","Children","toArray","isActive","onClick","TabContentMeta","TabContent","useContext","registerAll","loader","_registerComponent","Component","defaultMeta","registerComponent"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.0.
|
|
2
|
+
"version": "0.0.3",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"typings": "dist/index.d.ts",
|
|
@@ -63,5 +63,5 @@
|
|
|
63
63
|
"dependencies": {
|
|
64
64
|
"constate": "^3.3.2"
|
|
65
65
|
},
|
|
66
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "2d047d6d5f65d2c1f150eeff290663f58cab0e17"
|
|
67
67
|
}
|