@pantool/components 1.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +80 -0
- package/dist/atoms/alert-dialog/alert-dialog.d.ts +7 -0
- package/dist/atoms/alert-dialog/alert-dialog.js +2 -0
- package/dist/atoms/alert-dialog/alert-dialog.js.map +1 -0
- package/dist/atoms/alert-dialog/index.d.ts +1 -0
- package/dist/atoms/alert-dialog/index.js +1 -0
- package/dist/atoms/button/button.css +18 -0
- package/dist/atoms/button/button.d.ts +16 -0
- package/dist/atoms/button/button.js +2 -0
- package/dist/atoms/button/button.js.map +1 -0
- package/dist/atoms/button/button.module.js +2 -0
- package/dist/atoms/button/button.module.js.map +1 -0
- package/dist/atoms/button/index.d.ts +1 -0
- package/dist/atoms/button/index.js +1 -0
- package/dist/atoms/checkbox/checkbox.css +119 -0
- package/dist/atoms/checkbox/checkbox.d.ts +53 -0
- package/dist/atoms/checkbox/checkbox.js +2 -0
- package/dist/atoms/checkbox/checkbox.js.map +1 -0
- package/dist/atoms/checkbox/checkbox.module.js +2 -0
- package/dist/atoms/checkbox/checkbox.module.js.map +1 -0
- package/dist/atoms/checkbox/index.d.ts +1 -0
- package/dist/atoms/checkbox/index.js +1 -0
- package/dist/atoms/combobox/combobox.css +302 -0
- package/dist/atoms/combobox/combobox.d.ts +115 -0
- package/dist/atoms/combobox/combobox.js +2 -0
- package/dist/atoms/combobox/combobox.js.map +1 -0
- package/dist/atoms/combobox/combobox.module.js +2 -0
- package/dist/atoms/combobox/combobox.module.js.map +1 -0
- package/dist/atoms/combobox/components/chip.js +2 -0
- package/dist/atoms/combobox/components/chip.js.map +1 -0
- package/dist/atoms/combobox/components/item.d.ts +17 -0
- package/dist/atoms/combobox/components/item.js +2 -0
- package/dist/atoms/combobox/components/item.js.map +1 -0
- package/dist/atoms/combobox/index.d.ts +1 -0
- package/dist/atoms/combobox/index.js +1 -0
- package/dist/atoms/condition-guard/condition-guard.d.ts +32 -0
- package/dist/atoms/condition-guard/condition-guard.js +2 -0
- package/dist/atoms/condition-guard/condition-guard.js.map +1 -0
- package/dist/atoms/condition-guard/index.js +1 -0
- package/dist/atoms/context-menu/context-menu.css +75 -0
- package/dist/atoms/context-menu/context-menu.d.ts +41 -0
- package/dist/atoms/context-menu/context-menu.js +2 -0
- package/dist/atoms/context-menu/context-menu.js.map +1 -0
- package/dist/atoms/context-menu/context-menu.module.js +2 -0
- package/dist/atoms/context-menu/context-menu.module.js.map +1 -0
- package/dist/atoms/context-menu/index.js +1 -0
- package/dist/atoms/dialog/dialog.d.ts +7 -0
- package/dist/atoms/dialog/dialog.js +2 -0
- package/dist/atoms/dialog/dialog.js.map +1 -0
- package/dist/atoms/dialog/index.d.ts +1 -0
- package/dist/atoms/dialog/index.js +1 -0
- package/dist/atoms/icon/icon.d.ts +14 -0
- package/dist/atoms/icon/icon.js +2 -0
- package/dist/atoms/icon/icon.js.map +1 -0
- package/dist/atoms/icon/index.d.ts +1 -0
- package/dist/atoms/icon/index.js +1 -0
- package/dist/atoms/icon-button/icon-button.css +12 -0
- package/dist/atoms/icon-button/icon-button.d.ts +14 -0
- package/dist/atoms/icon-button/icon-button.js +2 -0
- package/dist/atoms/icon-button/icon-button.js.map +1 -0
- package/dist/atoms/icon-button/icon-button.module.js +2 -0
- package/dist/atoms/icon-button/icon-button.module.js.map +1 -0
- package/dist/atoms/icon-button/index.d.ts +1 -0
- package/dist/atoms/icon-button/index.js +1 -0
- package/dist/atoms/index.d.ts +17 -0
- package/dist/atoms/index.js +1 -0
- package/dist/atoms/input/index.d.ts +1 -0
- package/dist/atoms/input/index.js +1 -0
- package/dist/atoms/input/input.css +29 -0
- package/dist/atoms/input/input.d.ts +39 -0
- package/dist/atoms/input/input.js +2 -0
- package/dist/atoms/input/input.js.map +1 -0
- package/dist/atoms/input/input.module.js +2 -0
- package/dist/atoms/input/input.module.js.map +1 -0
- package/dist/atoms/radio/index.d.ts +1 -0
- package/dist/atoms/radio/index.js +1 -0
- package/dist/atoms/radio/radio.css +142 -0
- package/dist/atoms/radio/radio.d.ts +40 -0
- package/dist/atoms/radio/radio.js +2 -0
- package/dist/atoms/radio/radio.js.map +1 -0
- package/dist/atoms/radio/radio.module.js +2 -0
- package/dist/atoms/radio/radio.module.js.map +1 -0
- package/dist/atoms/switch/index.d.ts +1 -0
- package/dist/atoms/switch/index.js +1 -0
- package/dist/atoms/switch/switch.css +68 -0
- package/dist/atoms/switch/switch.d.ts +19 -0
- package/dist/atoms/switch/switch.js +2 -0
- package/dist/atoms/switch/switch.js.map +1 -0
- package/dist/atoms/switch/switch.module.js +2 -0
- package/dist/atoms/switch/switch.module.js.map +1 -0
- package/dist/atoms/tabs/index.d.ts +3 -0
- package/dist/atoms/tabs/index.js +1 -0
- package/dist/atoms/tabs/tabs.css +92 -0
- package/dist/atoms/tabs/tabs.d.ts +43 -0
- package/dist/atoms/tabs/tabs.js +2 -0
- package/dist/atoms/tabs/tabs.js.map +1 -0
- package/dist/atoms/tabs/tabs.module.js +2 -0
- package/dist/atoms/tabs/tabs.module.js.map +1 -0
- package/dist/atoms/text/index.d.ts +1 -0
- package/dist/atoms/text/index.js +1 -0
- package/dist/atoms/text/text.css +273 -0
- package/dist/atoms/text/text.d.ts +18 -0
- package/dist/atoms/text/text.js +2 -0
- package/dist/atoms/text/text.js.map +1 -0
- package/dist/atoms/text/text.module.js +2 -0
- package/dist/atoms/text/text.module.js.map +1 -0
- package/dist/atoms/toast/index.d.ts +1 -0
- package/dist/atoms/toast/index.js +1 -0
- package/dist/atoms/toast/toast.css +151 -0
- package/dist/atoms/toast/toast.d.ts +11 -0
- package/dist/atoms/toast/toast.js +2 -0
- package/dist/atoms/toast/toast.js.map +1 -0
- package/dist/atoms/toast/toast.module.js +2 -0
- package/dist/atoms/toast/toast.module.js.map +1 -0
- package/dist/atoms/tooltip/index.d.ts +1 -0
- package/dist/atoms/tooltip/index.js +1 -0
- package/dist/atoms/tooltip/tooltip.css +92 -0
- package/dist/atoms/tooltip/tooltip.d.ts +50 -0
- package/dist/atoms/tooltip/tooltip.js +2 -0
- package/dist/atoms/tooltip/tooltip.js.map +1 -0
- package/dist/atoms/tooltip/tooltip.module.js +2 -0
- package/dist/atoms/tooltip/tooltip.module.js.map +1 -0
- package/dist/helpers/portal/context/hooks.d.ts +7 -0
- package/dist/helpers/portal/context/hooks.js +2 -0
- package/dist/helpers/portal/context/hooks.js.map +1 -0
- package/dist/helpers/portal/context/index.internal.d.ts +2 -0
- package/dist/helpers/portal/context/index.internal.js +1 -0
- package/dist/helpers/portal/context/portal-config.d.ts +12 -0
- package/dist/helpers/portal/context/portal-config.js +2 -0
- package/dist/helpers/portal/context/portal-config.js.map +1 -0
- package/dist/helpers/portal/context/provider.d.ts +11 -0
- package/dist/helpers/portal/context/provider.js +2 -0
- package/dist/helpers/portal/context/provider.js.map +1 -0
- package/dist/helpers/portal/index.d.ts +3 -0
- package/dist/helpers/portal/index.js +1 -0
- package/dist/helpers/portal/portal.d.ts +24 -0
- package/dist/helpers/portal/portal.js +2 -0
- package/dist/helpers/portal/portal.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.js +1 -0
- package/dist/internals/base-button/base-button.css +262 -0
- package/dist/internals/base-button/base-button.d.ts +19 -0
- package/dist/internals/base-button/base-button.js +2 -0
- package/dist/internals/base-button/base-button.js.map +1 -0
- package/dist/internals/base-button/base-button.module.js +2 -0
- package/dist/internals/base-button/base-button.module.js.map +1 -0
- package/dist/internals/base-button/index.d.ts +1 -0
- package/dist/internals/base-button/index.js +1 -0
- package/dist/internals/base-dialog/base-dialog.css +74 -0
- package/dist/internals/base-dialog/base-dialog.d.ts +40 -0
- package/dist/internals/base-dialog/base-dialog.js +2 -0
- package/dist/internals/base-dialog/base-dialog.js.map +1 -0
- package/dist/internals/base-dialog/base-dialog.module.js +2 -0
- package/dist/internals/base-dialog/base-dialog.module.js.map +1 -0
- package/dist/internals/base-dialog/index.d.ts +1 -0
- package/dist/internals/base-dialog/index.js +1 -0
- package/dist/internals/base-field/base-field.css +115 -0
- package/dist/internals/base-field/base-field.d.ts +75 -0
- package/dist/internals/base-field/base-field.js +2 -0
- package/dist/internals/base-field/base-field.js.map +1 -0
- package/dist/internals/base-field/base-field.module.js +2 -0
- package/dist/internals/base-field/base-field.module.js.map +1 -0
- package/dist/internals/base-field/components/description.js +2 -0
- package/dist/internals/base-field/components/description.js.map +1 -0
- package/dist/internals/base-field/components/error.js +2 -0
- package/dist/internals/base-field/components/error.js.map +1 -0
- package/dist/internals/base-field/components/label.js +2 -0
- package/dist/internals/base-field/components/label.js.map +1 -0
- package/dist/internals/base-field/index.d.ts +1 -0
- package/dist/internals/base-field/index.js +1 -0
- package/dist/internals/base-svg/base-svg.css +137 -0
- package/dist/internals/base-svg/base-svg.d.ts +29 -0
- package/dist/internals/base-svg/base-svg.js +2 -0
- package/dist/internals/base-svg/base-svg.js.map +1 -0
- package/dist/internals/base-svg/base-svg.module.js +2 -0
- package/dist/internals/base-svg/base-svg.module.js.map +1 -0
- package/dist/internals/base-svg/index.d.ts +1 -0
- package/dist/internals/base-svg/index.js +1 -0
- package/dist/providers/alert-dialog-provider/alert-dialog-provider.d.ts +43 -0
- package/dist/providers/alert-dialog-provider/alert-dialog-provider.js +2 -0
- package/dist/providers/alert-dialog-provider/alert-dialog-provider.js.map +1 -0
- package/dist/providers/alert-dialog-provider/hooks.d.ts +16 -0
- package/dist/providers/alert-dialog-provider/hooks.js +2 -0
- package/dist/providers/alert-dialog-provider/hooks.js.map +1 -0
- package/dist/providers/alert-dialog-provider/index.d.ts +2 -0
- package/dist/providers/alert-dialog-provider/index.js +1 -0
- package/dist/providers/dialog-provider/dialog-provider.d.ts +43 -0
- package/dist/providers/dialog-provider/dialog-provider.js +2 -0
- package/dist/providers/dialog-provider/dialog-provider.js.map +1 -0
- package/dist/providers/dialog-provider/hooks.d.ts +16 -0
- package/dist/providers/dialog-provider/hooks.js +2 -0
- package/dist/providers/dialog-provider/hooks.js.map +1 -0
- package/dist/providers/dialog-provider/index.d.ts +2 -0
- package/dist/providers/dialog-provider/index.js +1 -0
- package/dist/providers/index.d.ts +8 -0
- package/dist/providers/index.js +1 -0
- package/dist/providers/toast-provider/index.d.ts +1 -0
- package/dist/providers/toast-provider/index.js +1 -0
- package/dist/providers/toast-provider/toast-provider.css +13 -0
- package/dist/providers/toast-provider/toast-provider.d.ts +124 -0
- package/dist/providers/toast-provider/toast-provider.js +2 -0
- package/dist/providers/toast-provider/toast-provider.js.map +1 -0
- package/dist/providers/toast-provider/toast-provider.module.js +2 -0
- package/dist/providers/toast-provider/toast-provider.module.js.map +1 -0
- package/dist/types.d.ts +43 -0
- package/dist/types.js +1 -0
- package/package.json +77 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.js","names":["Tooltip","BaseTooltip","styles"],"sources":["../../../src/atoms/tooltip/tooltip.tsx"],"sourcesContent":["import { Tooltip as BaseTooltip } from \"@base-ui/react/tooltip\";\nimport clsx from \"clsx\";\nimport * as React from \"react\";\nimport { usePortalConfig } from \"../../helpers/portal\";\nimport styles from \"./tooltip.module.css\";\n\nexport type TooltipProps = Omit<BaseTooltip.Root.Props, \"children\"> & {\n /**\n * The trigger element.\n * Should be a single React element that can accept props/refs (e.g. button).\n */\n children: React.ReactElement;\n /**\n * Tooltip content.\n */\n content: React.ReactNode;\n /**\n * Distance from trigger.\n */\n sideOffset?: number;\n /**\n * Whether to render the arrow.\n */\n arrow?: boolean;\n /**\n * Props forwarded to BaseTooltip.Popup.\n */\n popupProps?: Omit<BaseTooltip.Popup.Props, \"children\" | \"className\">;\n /**\n * Class name applied to the popup.\n */\n popupClassName?: string;\n /**\n * Class name applied to the arrow.\n */\n arrowClassName?: string;\n};\n\nexport function Tooltip({\n children,\n content,\n sideOffset = 8,\n arrow = true,\n popupProps,\n popupClassName,\n arrowClassName,\n ...rootProps\n}: TooltipProps) {\n const { resolveContainer } = usePortalConfig();\n const portalContainer = resolveContainer();\n\n return (\n <BaseTooltip.Root {...rootProps}>\n <BaseTooltip.Trigger className={styles[\"trigger\"]}>\n {children}\n </BaseTooltip.Trigger>\n\n <BaseTooltip.Portal container={portalContainer}>\n <BaseTooltip.Positioner sideOffset={sideOffset}>\n <BaseTooltip.Popup\n {...popupProps}\n className={clsx(styles[\"popup\"], popupClassName)}\n >\n {arrow ? (\n <BaseTooltip.Arrow\n className={clsx([styles[\"arrow\"], arrowClassName])}\n />\n ) : null}\n\n <BaseTooltip.Viewport className={styles[\"viewport\"]}>\n {content}\n </BaseTooltip.Viewport>\n </BaseTooltip.Popup>\n </BaseTooltip.Positioner>\n </BaseTooltip.Portal>\n </BaseTooltip.Root>\n );\n}\n\nexport type TooltipProviderProps = BaseTooltip.Provider.Props;\n\nexport function TooltipProvider(props: TooltipProviderProps) {\n return <BaseTooltip.Provider {...props} />;\n}\n"],"mappings":"sRAsCA,SAAgBA,EAAQ,CACtB,WACA,UACA,aAAa,EACb,QAAQ,GACR,aACA,iBACA,iBACA,GAAG,GACY,CACf,GAAM,CAAE,oBAAqB,EAAgB,EACvC,EAAkB,EAAiB,EAEzC,OACE,EAACC,EAAY,KAAb,CAAkB,GAAI,WAAtB,CACE,EAACA,EAAY,QAAb,CAAqB,UAAWC,EAAO,QACpC,UACkB,CAAA,EAErB,EAACD,EAAY,OAAb,CAAoB,UAAW,WAC7B,EAACA,EAAY,WAAb,CAAoC,sBAClC,EAACA,EAAY,MAAb,CACE,GAAI,EACJ,UAAW,EAAKC,EAAO,MAAU,CAAc,WAFjD,CAIG,EACC,EAACD,EAAY,MAAb,CACE,UAAW,EAAK,CAACC,EAAO,MAAU,CAAc,CAAC,CAClD,CAAA,EACC,KAEJ,EAACD,EAAY,SAAb,CAAsB,UAAWC,EAAO,kBACrC,CACmB,CAAA,CACL,GACG,CAAA,CACN,CAAA,CACJ,GAEtB,CAIA,SAAgB,EAAgB,EAA6B,CAC3D,OAAO,EAACD,EAAY,SAAb,CAAsB,GAAI,CAAQ,CAAA,CAC3C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.module.js","names":[],"sources":["../../../src/atoms/tooltip/tooltip.module.css"],"sourcesContent":[".trigger {\n outline: none;\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n.trigger:focus-visible {\n outline-style: solid;\n outline-width: var(--stroke-focus-ring);\n outline-color: var(--color-action-info-base);\n outline-offset: var(--spacing-xxs);\n}\n\n.popup {\n box-sizing: border-box;\n position: relative;\n z-index: 1;\n display: flex;\n flex-direction: column;\n max-width: 20rem;\n padding: var(--spacing-xs) var(--spacing-sm);\n border-style: solid;\n border-width: 0.0625rem;\n border-color: var(--color-border-primary);\n border-radius: var(--spacing-xs);\n background-color: var(--color-surface-base);\n color: var(--color-content-neutral-base);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.12);\n transform-origin: var(--transform-origin);\n transition:\n opacity 100ms ease-out,\n scale 100ms ease-out;\n}\n\n.popup[data-starting-style],\n.popup[data-ending-style] {\n opacity: 0;\n scale: 0.98;\n}\n\n.popup[data-instant] {\n transition: none;\n}\n\n.viewport {\n font-family: var(--typography-typeface-ltr);\n font-size: var(--typography-caption-base-size);\n line-height: 1.4;\n color: inherit;\n}\n\n.arrow {\n position: relative;\n display: block;\n width: 0.75rem;\n height: 0.375rem;\n overflow: clip;\n}\n/* TODO: fix hmr */\n/* TODO: fix arrow positions */\n\n.arrow[data-side=\"top\"] {\n bottom: -0.375rem;\n rotate: 180deg;\n}\n\n.arrow[data-side=\"bottom\"] {\n top: -0.375rem;\n rotate: 0deg;\n}\n\n.arrow[data-side=\"left\"] {\n right: -0.5625rem;\n rotate: 90deg;\n}\n\n.arrow[data-side=\"right\"] {\n left: -0.5625rem;\n rotate: -90deg;\n}\n\n.arrow::before {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: 50%;\n box-sizing: border-box;\n display: block;\n width: calc(0.375rem * sqrt(2));\n height: calc(0.375rem * sqrt(2));\n border-style: solid;\n border-width: 0.0625rem;\n border-color: var(--color-border-primary);\n background-color: var(--color-surface-base);\n transform: translate(-50%, 50%) rotate(45deg);\n}\n"],"mappings":"AAQA,IAAA,EAAe,CAAC,MAAM,eAAA,MAAA,eAAA,QAAA,iBAAA,SAAA,iBAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","names":[],"sources":["../../../../src/helpers/portal/context/hooks.ts"],"sourcesContent":["import { useContext } from \"react\";\nimport { PortalConfig, type PortalConfigValue } from \"./portal-config.ts\";\n\nexport const usePortalConfig = (): PortalConfigValue => {\n const portalConfig = useContext(PortalConfig);\n\n if (!portalConfig) {\n throw new Error(\n \"usePortalConfig must be used within an PortalConfigProvider.\",\n );\n }\n\n return portalConfig;\n};\n"],"mappings":"qFAGA,MAAa,MAA2C,CACtD,IAAM,EAAe,EAAW,CAAY,EAE5C,GAAI,CAAC,EACH,MAAU,MACR,8DACF,EAGF,OAAO,CACT"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./hooks.js";import"./provider.js";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/helpers/portal/context/portal-config.d.ts
|
|
2
|
+
type PortalConfigValue = {
|
|
3
|
+
/**
|
|
4
|
+
* A function that will resolve the container element for the portals.
|
|
5
|
+
*
|
|
6
|
+
* Please note that this function is only called on the client-side.
|
|
7
|
+
*/
|
|
8
|
+
resolveContainer: () => HTMLElement | null;
|
|
9
|
+
};
|
|
10
|
+
//#endregion
|
|
11
|
+
export { PortalConfigValue };
|
|
12
|
+
//# sourceMappingURL=portal-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal-config.js","names":[],"sources":["../../../../src/helpers/portal/context/portal-config.ts"],"sourcesContent":["import * as React from \"react\";\n\nexport type PortalConfigValue = {\n /**\n * A function that will resolve the container element for the portals.\n *\n * Please note that this function is only called on the client-side.\n */\n resolveContainer: () => HTMLElement | null;\n};\n\nexport const PortalConfig = React.createContext<PortalConfigValue | null>(null);\n"],"mappings":"wBAWA,MAAa,EAAe,EAAM,cAAwC,IAAI"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { PortalConfigValue } from "./portal-config.js";
|
|
2
|
+
|
|
3
|
+
//#region src/helpers/portal/context/provider.d.ts
|
|
4
|
+
type Props = {
|
|
5
|
+
children: React.ReactNode;
|
|
6
|
+
config: PortalConfigValue;
|
|
7
|
+
};
|
|
8
|
+
declare const PortalConfigProvider: React.FC<Props>;
|
|
9
|
+
//#endregion
|
|
10
|
+
export { PortalConfigProvider };
|
|
11
|
+
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{PortalConfig as e}from"./portal-config.js";import{useMemo as t}from"react";import{jsx as n}from"react/jsx-runtime";const r=r=>{let{config:i,children:a}=r,{resolveContainer:o}=i??{},s=t(()=>({resolveContainer:o}),[o]);return n(e.Provider,{value:s,children:a})};export{r as PortalConfigProvider};
|
|
2
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","names":[],"sources":["../../../../src/helpers/portal/context/provider.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport { PortalConfig, type PortalConfigValue } from \"./portal-config.ts\";\n\ntype Props = {\n children: React.ReactNode;\n config: PortalConfigValue;\n};\n\nexport const PortalConfigProvider: React.FC<Props> = (props) => {\n const { config, children } = props;\n const { resolveContainer } = config ?? {};\n\n const context = useMemo(\n () => ({ resolveContainer }) satisfies PortalConfigValue,\n [resolveContainer],\n );\n\n return (\n <PortalConfig.Provider value={context}>{children}</PortalConfig.Provider>\n );\n};\n"],"mappings":"0HAQA,MAAa,EAAyC,GAAU,CAC9D,GAAM,CAAE,SAAQ,YAAa,EACvB,CAAE,oBAAqB,GAAU,CAAC,EAElC,EAAU,OACP,CAAE,kBAAiB,GAC1B,CAAC,CAAgB,CACnB,EAEA,OACE,EAAC,EAAa,SAAd,CAAuB,MAAO,EAAU,UAAgC,CAAA,CAE5E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./context/hooks.js";import"./context/provider.js";import"./context/index.internal.js";import"./portal.js";
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
//#region src/helpers/portal/portal.d.ts
|
|
2
|
+
type PortalProps = {
|
|
3
|
+
/**
|
|
4
|
+
* A function that will resolve the container element for the portal.
|
|
5
|
+
* If not provided will opt-in `PortalConfigProvider` configuration as default behavior.
|
|
6
|
+
*
|
|
7
|
+
* Please note that this function is only called on the client-side.
|
|
8
|
+
*/
|
|
9
|
+
resolveContainer?: () => HTMLElement | null;
|
|
10
|
+
/**
|
|
11
|
+
* The children to render into the container.
|
|
12
|
+
*/
|
|
13
|
+
children: React.ReactNode;
|
|
14
|
+
/**
|
|
15
|
+
* If `true`, the `children` will be under the DOM hierarchy of the parent component.
|
|
16
|
+
*
|
|
17
|
+
* @default false
|
|
18
|
+
*/
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
};
|
|
21
|
+
declare const Portal: React.FC<PortalProps>;
|
|
22
|
+
//#endregion
|
|
23
|
+
export { Portal, PortalProps };
|
|
24
|
+
//# sourceMappingURL=portal.d.ts.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{usePortalConfig as e}from"./context/hooks.js";import"./context/index.internal.js";import{Fragment as t,jsx as n}from"react/jsx-runtime";import{useIsomorphicValue as r}from"@pantool/lib";import{createPortal as i}from"react-dom";const a=a=>{let{resolveContainer:o,children:s,disabled:c=!1}=a,l=e(),u=r(o??l.resolveContainer,null);return c?n(t,{children:s}):u?i(s,u):null};export{a as Portal};
|
|
2
|
+
//# sourceMappingURL=portal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal.js","names":[],"sources":["../../../src/helpers/portal/portal.tsx"],"sourcesContent":["import { useIsomorphicValue } from \"@pantool/lib\";\nimport { createPortal } from \"react-dom\";\nimport { usePortalConfig } from \"./context/index.internal.ts\";\n\nexport type PortalProps = {\n /**\n * A function that will resolve the container element for the portal.\n * If not provided will opt-in `PortalConfigProvider` configuration as default behavior.\n *\n * Please note that this function is only called on the client-side.\n */\n resolveContainer?: () => HTMLElement | null;\n\n /**\n * The children to render into the container.\n */\n children: React.ReactNode;\n\n /**\n * If `true`, the `children` will be under the DOM hierarchy of the parent component.\n *\n * @default false\n */\n disabled?: boolean;\n};\n\nexport const Portal: React.FC<PortalProps> = props => {\n const { resolveContainer, children, disabled = false } = props;\n\n const portalConfig = usePortalConfig();\n\n const containerResolver = resolveContainer ?? portalConfig.resolveContainer;\n\n const container = useIsomorphicValue(containerResolver, null);\n\n if (disabled) return <>{children}</>;\n if (!container) return null;\n\n return createPortal(children, container);\n};\n"],"mappings":"0OA0BA,MAAa,EAAgC,GAAS,CACpD,GAAM,CAAE,mBAAkB,WAAU,WAAW,IAAU,EAEnD,EAAe,EAAgB,EAI/B,EAAY,EAFQ,GAAoB,EAAa,iBAEH,IAAI,EAK5D,OAHI,EAAiB,EAAA,EAAA,CAAG,UAAW,CAAA,EAC9B,EAEE,EAAa,EAAU,CAAS,EAFhB,IAGzB"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { AlertDialog, AlertDialogProps } from "./atoms/alert-dialog/alert-dialog.js";
|
|
2
|
+
import { Button, ButtonProps } from "./atoms/button/button.js";
|
|
3
|
+
import { Checkbox, CheckboxProps } from "./atoms/checkbox/checkbox.js";
|
|
4
|
+
import { Combobox, ComboboxGroup, ComboboxProps } from "./atoms/combobox/combobox.js";
|
|
5
|
+
import { ContextMenu } from "./atoms/context-menu/context-menu.js";
|
|
6
|
+
import { Dialog, DialogProps } from "./atoms/dialog/dialog.js";
|
|
7
|
+
import { Icon, IconProps } from "./atoms/icon/icon.js";
|
|
8
|
+
import { IconButton, IconButtonProps } from "./atoms/icon-button/icon-button.js";
|
|
9
|
+
import { Input, InputProps } from "./atoms/input/input.js";
|
|
10
|
+
import { Radio, RadioGroup, RadioGroupProps, RadioProps } from "./atoms/radio/radio.js";
|
|
11
|
+
import { Switch, SwitchProps } from "./atoms/switch/switch.js";
|
|
12
|
+
import { Tabs, TabsList, TabsListProps, TabsPanel, TabsPanelProps, TabsTab, TabsTabProps } from "./atoms/tabs/tabs.js";
|
|
13
|
+
import { TabsListState, TabsPanelState, TabsRootChangeEventDetails, TabsRootState, TabsTabState, TabsTabValue } from "./atoms/tabs/index.js";
|
|
14
|
+
import { MergeElementProps, MergeElementPropsWithOmitted, PolymorphicProps, PolymorphicPropsWithOmitted, WithBaseProps, WithColorProps, WithRef } from "./types.js";
|
|
15
|
+
import { Text, TextColor, TextProps, TextVariant } from "./atoms/text/text.js";
|
|
16
|
+
import { Toast, ToastData, ToastProps } from "./atoms/toast/toast.js";
|
|
17
|
+
import { Tooltip, TooltipProps, TooltipProvider, TooltipProviderProps } from "./atoms/tooltip/tooltip.js";
|
|
18
|
+
import { ConditionGuard, ConditionGuardProps } from "./atoms/condition-guard/condition-guard.js";
|
|
19
|
+
import { usePortalConfig } from "./helpers/portal/context/hooks.js";
|
|
20
|
+
import { PortalConfigProvider } from "./helpers/portal/context/provider.js";
|
|
21
|
+
import { Portal, PortalProps } from "./helpers/portal/portal.js";
|
|
22
|
+
import { AlertDialogContext, AlertDialogProvider, AlertDialogProviderProps, showAlertDialog } from "./providers/alert-dialog-provider/alert-dialog-provider.js";
|
|
23
|
+
import { useAlertDialog } from "./providers/alert-dialog-provider/hooks.js";
|
|
24
|
+
import { DialogContext, DialogProvider, DialogProviderProps, showDialog } from "./providers/dialog-provider/dialog-provider.js";
|
|
25
|
+
import { useDialog } from "./providers/dialog-provider/hooks.js";
|
|
26
|
+
import { ToastProvider, ToastProviderProps, toaster } from "./providers/toast-provider/toast-provider.js";
|
|
27
|
+
export { AlertDialog, AlertDialogContext, AlertDialogProps, AlertDialogProvider, AlertDialogProviderProps, Button, ButtonProps, Checkbox, CheckboxProps, Combobox, ComboboxGroup, ComboboxProps, ConditionGuard, ConditionGuardProps, ContextMenu, Dialog, DialogContext, DialogProps, DialogProvider, DialogProviderProps, Icon, IconButton, IconButtonProps, IconProps, Input, InputProps, MergeElementProps, MergeElementPropsWithOmitted, PolymorphicProps, PolymorphicPropsWithOmitted, Portal, PortalConfigProvider, PortalProps, Radio, RadioGroup, RadioGroupProps, RadioProps, Switch, SwitchProps, Tabs, TabsList, type TabsListProps, type TabsListState, TabsPanel, type TabsPanelProps, type TabsPanelState, type TabsRootChangeEventDetails, type TabsRootState, TabsTab, type TabsTabProps, type TabsTabState, type TabsTabValue, Text, TextColor, TextProps, TextVariant, Toast, ToastData, ToastProps, ToastProvider, ToastProviderProps, Tooltip, TooltipProps, TooltipProvider, TooltipProviderProps, WithBaseProps, WithColorProps, WithRef, showAlertDialog, showDialog, toaster, useAlertDialog, useDialog, usePortalConfig };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Button as e}from"./atoms/button/button.js";import{Text as t}from"./atoms/text/text.js";import{usePortalConfig as n}from"./helpers/portal/context/hooks.js";import{PortalConfigProvider as r}from"./helpers/portal/context/provider.js";import{Portal as i}from"./helpers/portal/portal.js";import{AlertDialog as a}from"./atoms/alert-dialog/alert-dialog.js";import{Icon as o}from"./atoms/icon/icon.js";import{Checkbox as s}from"./atoms/checkbox/checkbox.js";import{Combobox as c}from"./atoms/combobox/combobox.js";import{ContextMenu as l}from"./atoms/context-menu/context-menu.js";import{Dialog as u}from"./atoms/dialog/dialog.js";import{IconButton as d}from"./atoms/icon-button/icon-button.js";import{Input as f}from"./atoms/input/input.js";import{Radio as p,RadioGroup as m}from"./atoms/radio/radio.js";import{Switch as h}from"./atoms/switch/switch.js";import{Tabs as g,TabsList as _,TabsPanel as v,TabsTab as y}from"./atoms/tabs/tabs.js";import{Toast as b}from"./atoms/toast/toast.js";import{Tooltip as x,TooltipProvider as S}from"./atoms/tooltip/tooltip.js";import{ConditionGuard as C}from"./atoms/condition-guard/condition-guard.js";import"./atoms/index.js";import{AlertDialogContext as w,AlertDialogProvider as T,showAlertDialog as E}from"./providers/alert-dialog-provider/alert-dialog-provider.js";import{useAlertDialog as D}from"./providers/alert-dialog-provider/hooks.js";import{DialogContext as O,DialogProvider as k,showDialog as A}from"./providers/dialog-provider/dialog-provider.js";import{useDialog as j}from"./providers/dialog-provider/hooks.js";import{ToastProvider as M,toaster as N}from"./providers/toast-provider/toast-provider.js";import"./providers/index.js";import"./types.js";export{a as AlertDialog,w as AlertDialogContext,T as AlertDialogProvider,e as Button,s as Checkbox,c as Combobox,C as ConditionGuard,l as ContextMenu,u as Dialog,O as DialogContext,k as DialogProvider,o as Icon,d as IconButton,f as Input,i as Portal,r as PortalConfigProvider,p as Radio,m as RadioGroup,h as Switch,g as Tabs,_ as TabsList,v as TabsPanel,y as TabsTab,t as Text,b as Toast,M as ToastProvider,x as Tooltip,S as TooltipProvider,E as showAlertDialog,A as showDialog,N as toaster,D as useAlertDialog,j as useDialog,n as usePortalConfig};
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
._4R_YnW_root {
|
|
2
|
+
box-sizing: border-box;
|
|
3
|
+
cursor: pointer;
|
|
4
|
+
user-select: none;
|
|
5
|
+
font-family: var(--typography-typeface-ltr);
|
|
6
|
+
font-weight: var(--typography-body-2-weight);
|
|
7
|
+
border-radius: var(--radius-full);
|
|
8
|
+
height: var(--btn-height);
|
|
9
|
+
padding: 0 var(--btn-padding-x);
|
|
10
|
+
font-size: var(--btn-font-size);
|
|
11
|
+
background-color: var(--btn-bg);
|
|
12
|
+
color: var(--btn-text);
|
|
13
|
+
border: none;
|
|
14
|
+
border: 1px solid var(--btn-border);
|
|
15
|
+
outline: none;
|
|
16
|
+
justify-content: center;
|
|
17
|
+
align-items: center;
|
|
18
|
+
text-decoration: none;
|
|
19
|
+
transition: background-color .2s, color .2s, border-color .2s, opacity .2s;
|
|
20
|
+
display: inline-flex;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
._4R_YnW_root[data-size="sm"] {
|
|
24
|
+
--btn-height: 1.5rem;
|
|
25
|
+
--btn-icon-size: 1rem;
|
|
26
|
+
--btn-padding-x: var(--spacing-sm);
|
|
27
|
+
--btn-font-size: var(--typography-body-2-size);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
._4R_YnW_root[data-size="md"] {
|
|
31
|
+
--btn-height: 2rem;
|
|
32
|
+
--btn-icon-size: 1.5rem;
|
|
33
|
+
--btn-padding-x: var(--spacing-md);
|
|
34
|
+
--btn-font-size: var(--typography-body-2-size);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
._4R_YnW_root[data-size="lg"] {
|
|
38
|
+
--btn-height: 2.5rem;
|
|
39
|
+
--btn-icon-size: 2rem;
|
|
40
|
+
--btn-padding-x: var(--spacing-lg);
|
|
41
|
+
--btn-font-size: var(--typography-body-1-size);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
._4R_YnW_root[data-fluid] {
|
|
45
|
+
width: 100%;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
._4R_YnW_root:focus-visible {
|
|
49
|
+
outline-style: solid;
|
|
50
|
+
outline-width: var(--stroke-focus-ring);
|
|
51
|
+
outline-color: var(--color-action-info-base);
|
|
52
|
+
outline-offset: var(--spacing-xxs);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
._4R_YnW_root[disabled], ._4R_YnW_root[data-disabled] {
|
|
56
|
+
cursor: not-allowed;
|
|
57
|
+
opacity: .5;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
._4R_YnW_root[data-color="neutral"][data-variant="filled"] {
|
|
61
|
+
--btn-bg: var(--color-action-neutral-base);
|
|
62
|
+
--btn-text: var(--color-on-neutral);
|
|
63
|
+
--btn-border: transparent;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
._4R_YnW_root[data-color="neutral"][data-variant="filled"]:hover:not([disabled]) {
|
|
67
|
+
--btn-bg: var(--color-action-neutral-hover);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
._4R_YnW_root[data-color="neutral"][data-variant="filled"]:active:not([disabled]) {
|
|
71
|
+
--btn-bg: var(--color-action-neutral-active);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
._4R_YnW_root[data-color="neutral"][data-variant="outlined"] {
|
|
75
|
+
--btn-bg: transparent;
|
|
76
|
+
--btn-text: var(--color-content-neutral-base);
|
|
77
|
+
--btn-border: var(--color-content-neutral-base);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
._4R_YnW_root[data-color="neutral"][data-variant="outlined"]:hover:not([disabled]) {
|
|
81
|
+
--btn-bg: var(--color-surface-secondary);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
._4R_YnW_root[data-color="neutral"][data-variant="ghost"] {
|
|
85
|
+
--btn-bg: transparent;
|
|
86
|
+
--btn-text: var(--color-content-neutral-base);
|
|
87
|
+
--btn-border: transparent;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
._4R_YnW_root[data-color="neutral"][data-variant="ghost"]:hover:not([disabled]) {
|
|
91
|
+
--btn-bg: var(--color-surface-secondary);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
._4R_YnW_root[data-color="brand"][data-variant="filled"] {
|
|
95
|
+
--btn-bg: var(--color-action-brand-base);
|
|
96
|
+
--btn-text: var(--color-on-brand);
|
|
97
|
+
--btn-border: transparent;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
._4R_YnW_root[data-color="brand"][data-variant="filled"]:hover:not([disabled]) {
|
|
101
|
+
--btn-bg: var(--color-action-brand-hover);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
._4R_YnW_root[data-color="brand"][data-variant="filled"]:active:not([disabled]) {
|
|
105
|
+
--btn-bg: var(--color-action-brand-active);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
._4R_YnW_root[data-color="brand"][data-variant="outlined"] {
|
|
109
|
+
--btn-bg: transparent;
|
|
110
|
+
--btn-text: var(--color-content-brand-base);
|
|
111
|
+
--btn-border: var(--color-content-brand-base);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
._4R_YnW_root[data-color="brand"][data-variant="outlined"]:hover:not([disabled]) {
|
|
115
|
+
--btn-bg: var(--color-surface-secondary);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
._4R_YnW_root[data-color="brand"][data-variant="ghost"] {
|
|
119
|
+
--btn-bg: transparent;
|
|
120
|
+
--btn-text: var(--color-content-brand-base);
|
|
121
|
+
--btn-border: transparent;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
._4R_YnW_root[data-color="brand"][data-variant="ghost"]:hover:not([disabled]) {
|
|
125
|
+
--btn-bg: var(--color-surface-secondary);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
._4R_YnW_root[data-color="positive"][data-variant="filled"] {
|
|
129
|
+
--btn-bg: var(--color-action-positive-base);
|
|
130
|
+
--btn-text: var(--color-on-positive);
|
|
131
|
+
--btn-border: transparent;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
._4R_YnW_root[data-color="positive"][data-variant="filled"]:hover:not([disabled]) {
|
|
135
|
+
--btn-bg: var(--color-action-positive-hover);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
._4R_YnW_root[data-color="positive"][data-variant="filled"]:active:not([disabled]) {
|
|
139
|
+
--btn-bg: var(--color-action-positive-active);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
._4R_YnW_root[data-color="positive"][data-variant="outlined"] {
|
|
143
|
+
--btn-bg: transparent;
|
|
144
|
+
--btn-text: var(--color-content-positive-base);
|
|
145
|
+
--btn-border: var(--color-content-positive-base);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
._4R_YnW_root[data-color="positive"][data-variant="outlined"]:hover:not([disabled]) {
|
|
149
|
+
--btn-bg: var(--color-surface-secondary);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
._4R_YnW_root[data-color="positive"][data-variant="ghost"] {
|
|
153
|
+
--btn-bg: transparent;
|
|
154
|
+
--btn-text: var(--color-content-positive-base);
|
|
155
|
+
--btn-border: transparent;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
._4R_YnW_root[data-color="positive"][data-variant="ghost"]:hover:not([disabled]) {
|
|
159
|
+
--btn-bg: var(--color-surface-secondary);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
._4R_YnW_root[data-color="negative"][data-variant="filled"] {
|
|
163
|
+
--btn-bg: var(--color-action-negative-base);
|
|
164
|
+
--btn-text: var(--color-on-negative);
|
|
165
|
+
--btn-border: transparent;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
._4R_YnW_root[data-color="negative"][data-variant="filled"]:hover:not([disabled]) {
|
|
169
|
+
--btn-bg: var(--color-action-negative-hover);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
._4R_YnW_root[data-color="negative"][data-variant="filled"]:active:not([disabled]) {
|
|
173
|
+
--btn-bg: var(--color-action-negative-active);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
._4R_YnW_root[data-color="negative"][data-variant="outlined"] {
|
|
177
|
+
--btn-bg: transparent;
|
|
178
|
+
--btn-text: var(--color-content-negative-base);
|
|
179
|
+
--btn-border: var(--color-content-negative-base);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
._4R_YnW_root[data-color="negative"][data-variant="outlined"]:hover:not([disabled]) {
|
|
183
|
+
--btn-bg: var(--color-surface-secondary);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
._4R_YnW_root[data-color="negative"][data-variant="ghost"] {
|
|
187
|
+
--btn-bg: transparent;
|
|
188
|
+
--btn-text: var(--color-content-negative-base);
|
|
189
|
+
--btn-border: transparent;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
._4R_YnW_root[data-color="negative"][data-variant="ghost"]:hover:not([disabled]) {
|
|
193
|
+
--btn-bg: var(--color-surface-secondary);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
._4R_YnW_root[data-color="warn"][data-variant="filled"] {
|
|
197
|
+
--btn-bg: var(--color-action-warn-base);
|
|
198
|
+
--btn-text: var(--color-on-warn);
|
|
199
|
+
--btn-border: transparent;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
._4R_YnW_root[data-color="warn"][data-variant="filled"]:hover:not([disabled]) {
|
|
203
|
+
--btn-bg: var(--color-action-warn-hover);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
._4R_YnW_root[data-color="warn"][data-variant="filled"]:active:not([disabled]) {
|
|
207
|
+
--btn-bg: var(--color-action-warn-active);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
._4R_YnW_root[data-color="warn"][data-variant="outlined"] {
|
|
211
|
+
--btn-bg: transparent;
|
|
212
|
+
--btn-text: var(--color-content-warn-base);
|
|
213
|
+
--btn-border: var(--color-content-warn-base);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
._4R_YnW_root[data-color="warn"][data-variant="outlined"]:hover:not([disabled]) {
|
|
217
|
+
--btn-bg: var(--color-surface-secondary);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
._4R_YnW_root[data-color="warn"][data-variant="ghost"] {
|
|
221
|
+
--btn-bg: transparent;
|
|
222
|
+
--btn-text: var(--color-content-warn-base);
|
|
223
|
+
--btn-border: transparent;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
._4R_YnW_root[data-color="warn"][data-variant="ghost"]:hover:not([disabled]) {
|
|
227
|
+
--btn-bg: var(--color-surface-secondary);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
._4R_YnW_root[data-color="info"][data-variant="filled"] {
|
|
231
|
+
--btn-bg: var(--color-action-info-base);
|
|
232
|
+
--btn-text: var(--color-on-info);
|
|
233
|
+
--btn-border: transparent;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
._4R_YnW_root[data-color="info"][data-variant="filled"]:hover:not([disabled]) {
|
|
237
|
+
--btn-bg: var(--color-action-info-hover);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
._4R_YnW_root[data-color="info"][data-variant="filled"]:active:not([disabled]) {
|
|
241
|
+
--btn-bg: var(--color-action-info-active);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
._4R_YnW_root[data-color="info"][data-variant="outlined"] {
|
|
245
|
+
--btn-bg: transparent;
|
|
246
|
+
--btn-text: var(--color-content-info-base);
|
|
247
|
+
--btn-border: var(--color-content-info-base);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
._4R_YnW_root[data-color="info"][data-variant="outlined"]:hover:not([disabled]) {
|
|
251
|
+
--btn-bg: var(--color-surface-secondary);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
._4R_YnW_root[data-color="info"][data-variant="ghost"] {
|
|
255
|
+
--btn-bg: transparent;
|
|
256
|
+
--btn-text: var(--color-content-info-base);
|
|
257
|
+
--btn-border: transparent;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
._4R_YnW_root[data-color="info"][data-variant="ghost"]:hover:not([disabled]) {
|
|
261
|
+
--btn-bg: var(--color-surface-secondary);
|
|
262
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Button } from "@base-ui/react/button";
|
|
3
|
+
|
|
4
|
+
//#region src/internals/base-button/base-button.d.ts
|
|
5
|
+
interface BaseButtonProps extends React.ComponentPropsWithoutRef<typeof Button> {
|
|
6
|
+
/** The visual style of the button. */
|
|
7
|
+
variant?: "filled" | "outlined" | "ghost";
|
|
8
|
+
/** The semantic color palette applied to the button. */
|
|
9
|
+
color?: "neutral" | "brand" | "positive" | "negative" | "warn" | "info";
|
|
10
|
+
/** The size of the button, affecting height, padding, and font size. */
|
|
11
|
+
size?: "sm" | "md" | "lg";
|
|
12
|
+
/** If true, the button is in a loading state and becomes disabled. */
|
|
13
|
+
pending?: boolean;
|
|
14
|
+
/** If true, the button will take up 100% of its container's width. */
|
|
15
|
+
fluid?: boolean;
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { BaseButtonProps };
|
|
19
|
+
//# sourceMappingURL=base-button.d.ts.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"./base-button.module.js";import*as t from"react";import{Button as n}from"@base-ui/react/button";import{jsx as r}from"react/jsx-runtime";const i=t.forwardRef((t,i)=>{let{className:a,variant:o=`filled`,color:s=`neutral`,size:c=`md`,pending:l=!1,fluid:u=!1,disabled:d,children:f,...p}=t;return r(n,{ref:i,className:`${e.root} ${a||``}`.trim(),"data-variant":o,"data-color":s,"data-size":c,"data-pending":l?``:void 0,"data-fluid":u?``:void 0,disabled:d||l,...p,children:f})});export{i as BaseButton};
|
|
2
|
+
//# sourceMappingURL=base-button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-button.js","names":["BaseUIButton","styles"],"sources":["../../../src/internals/base-button/base-button.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Button as BaseUIButton } from \"@base-ui/react/button\";\nimport styles from \"./base-button.module.css\";\n\nexport interface BaseButtonProps extends React.ComponentPropsWithoutRef<\n typeof BaseUIButton\n> {\n /** The visual style of the button. */\n variant?: \"filled\" | \"outlined\" | \"ghost\";\n /** The semantic color palette applied to the button. */\n color?: \"neutral\" | \"brand\" | \"positive\" | \"negative\" | \"warn\" | \"info\";\n /** The size of the button, affecting height, padding, and font size. */\n size?: \"sm\" | \"md\" | \"lg\";\n /** If true, the button is in a loading state and becomes disabled. */\n pending?: boolean;\n /** If true, the button will take up 100% of its container's width. */\n fluid?: boolean;\n}\n\nexport const BaseButton = React.forwardRef<HTMLButtonElement, BaseButtonProps>(\n (props, ref) => {\n const {\n className,\n variant = \"filled\",\n color = \"neutral\",\n size = \"md\",\n pending = false,\n fluid = false,\n disabled,\n children,\n ...rest\n } = props;\n\n return (\n <BaseUIButton\n ref={ref}\n className={`${styles[\"root\"]} ${className || \"\"}`.trim()}\n data-variant={variant}\n data-color={color}\n data-size={size}\n data-pending={pending ? \"\" : undefined}\n data-fluid={fluid ? \"\" : undefined}\n disabled={disabled || pending}\n {...rest}\n >\n {children}\n </BaseUIButton>\n );\n },\n);\n"],"mappings":"sJAmBA,MAAa,EAAa,EAAM,YAC7B,EAAO,IAAQ,CACd,GAAM,CACJ,YACA,UAAU,SACV,QAAQ,UACR,OAAO,KACP,UAAU,GACV,QAAQ,GACR,WACA,WACA,GAAG,GACD,EAEJ,OACE,EAACA,EAAD,CACO,MACL,UAAW,GAAGC,EAAO,KAAQ,GAAG,GAAa,KAAK,KAAK,EACvD,eAAc,EACd,aAAY,EACZ,YAAW,EACX,eAAc,EAAU,GAAK,IAAA,GAC7B,aAAY,EAAQ,GAAK,IAAA,GACzB,SAAU,GAAY,EACtB,GAAI,EAEH,UACW,CAAA,CAElB,CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-button.module.js","names":[],"sources":["../../../src/internals/base-button/base-button.module.css"],"sourcesContent":[".root {\n /* 1. Map internal variables to CSS properties */\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n outline: none;\n border: none;\n cursor: pointer;\n user-select: none;\n text-decoration: none;\n font-family: var(--typography-typeface-ltr);\n font-weight: var(--typography-body-2-weight);\n border-radius: var(--radius-full);\n transition:\n background-color 0.2s,\n color 0.2s,\n border-color 0.2s,\n opacity 0.2s;\n\n /* Apply local variables */\n height: var(--btn-height);\n padding: 0 var(--btn-padding-x);\n font-size: var(--btn-font-size);\n background-color: var(--btn-bg);\n color: var(--btn-text);\n border: 1px solid var(--btn-border);\n}\n\n/* --- Sizes --- */\n.root[data-size=\"sm\"] {\n --btn-height: 1.5rem;\n --btn-icon-size: 1rem;\n --btn-padding-x: var(--spacing-sm);\n --btn-font-size: var(--typography-body-2-size);\n}\n\n.root[data-size=\"md\"] {\n --btn-height: 2rem;\n --btn-icon-size: 1.5rem;\n --btn-padding-x: var(--spacing-md);\n --btn-font-size: var(--typography-body-2-size);\n}\n\n.root[data-size=\"lg\"] {\n --btn-height: 2.5rem;\n --btn-icon-size: 2rem;\n --btn-padding-x: var(--spacing-lg);\n --btn-font-size: var(--typography-body-1-size);\n}\n\n/* --- Layout Modifiers --- */\n.root[data-fluid] {\n width: 100%;\n}\n\n/* --- Focus Ring (Base UI provides data-focus-visible) --- */\n.root:focus-visible {\n outline-style: solid;\n outline-width: var(--stroke-focus-ring);\n outline-color: var(--color-action-info-base);\n outline-offset: var(--spacing-xxs);\n}\n\n/* --- Disabled State --- */\n.root[disabled],\n.root[data-disabled] {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n/* --- Variants & Colors: BRAND Example --- */\n/* (You would duplicate this block for neutral, positive, negative, etc.) */\n\n/* Brand Filled */\n.root[data-color=\"brand\"][data-variant=\"filled\"] {\n --btn-bg: var(--color-action-brand-base);\n --btn-text: var(--color-on-brand);\n --btn-border: transparent;\n}\n.root[data-color=\"brand\"][data-variant=\"filled\"]:hover:not([disabled]) {\n --btn-bg: var(--color-action-brand-hover);\n}\n.root[data-color=\"brand\"][data-variant=\"filled\"]:active:not([disabled]) {\n --btn-bg: var(--color-action-brand-active);\n}\n\n/* Brand Outlined */\n.root[data-color=\"brand\"][data-variant=\"outlined\"] {\n --btn-bg: transparent;\n --btn-text: var(--color-content-brand-base);\n --btn-border: var(--color-content-brand-base);\n}\n.root[data-color=\"brand\"][data-variant=\"outlined\"]:hover:not([disabled]) {\n --btn-bg: var(--color-surface-secondary);\n}\n\n/* Brand Ghost */\n.root[data-color=\"brand\"][data-variant=\"ghost\"] {\n --btn-bg: transparent;\n --btn-text: var(--color-content-brand-base);\n --btn-border: transparent;\n}\n.root[data-color=\"brand\"][data-variant=\"ghost\"]:hover:not([disabled]) {\n --btn-bg: var(--color-surface-secondary);\n}\n\n/* --- Variants & Colors --- */\n\n/* Neutral Filled */\n.root[data-color=\"neutral\"][data-variant=\"filled\"] {\n --btn-bg: var(--color-action-neutral-base);\n --btn-text: var(--color-on-neutral);\n --btn-border: transparent;\n}\n.root[data-color=\"neutral\"][data-variant=\"filled\"]:hover:not([disabled]) {\n --btn-bg: var(--color-action-neutral-hover);\n}\n.root[data-color=\"neutral\"][data-variant=\"filled\"]:active:not([disabled]) {\n --btn-bg: var(--color-action-neutral-active);\n}\n\n/* Neutral Outlined */\n.root[data-color=\"neutral\"][data-variant=\"outlined\"] {\n --btn-bg: transparent;\n --btn-text: var(--color-content-neutral-base);\n --btn-border: var(--color-content-neutral-base);\n}\n.root[data-color=\"neutral\"][data-variant=\"outlined\"]:hover:not([disabled]) {\n --btn-bg: var(--color-surface-secondary);\n}\n\n/* Neutral Ghost */\n.root[data-color=\"neutral\"][data-variant=\"ghost\"] {\n --btn-bg: transparent;\n --btn-text: var(--color-content-neutral-base);\n --btn-border: transparent;\n}\n.root[data-color=\"neutral\"][data-variant=\"ghost\"]:hover:not([disabled]) {\n --btn-bg: var(--color-surface-secondary);\n}\n\n/* Brand Filled */\n.root[data-color=\"brand\"][data-variant=\"filled\"] {\n --btn-bg: var(--color-action-brand-base);\n --btn-text: var(--color-on-brand);\n --btn-border: transparent;\n}\n.root[data-color=\"brand\"][data-variant=\"filled\"]:hover:not([disabled]) {\n --btn-bg: var(--color-action-brand-hover);\n}\n.root[data-color=\"brand\"][data-variant=\"filled\"]:active:not([disabled]) {\n --btn-bg: var(--color-action-brand-active);\n}\n\n/* Brand Outlined */\n.root[data-color=\"brand\"][data-variant=\"outlined\"] {\n --btn-bg: transparent;\n --btn-text: var(--color-content-brand-base);\n --btn-border: var(--color-content-brand-base);\n}\n.root[data-color=\"brand\"][data-variant=\"outlined\"]:hover:not([disabled]) {\n --btn-bg: var(--color-surface-secondary);\n}\n\n/* Brand Ghost */\n.root[data-color=\"brand\"][data-variant=\"ghost\"] {\n --btn-bg: transparent;\n --btn-text: var(--color-content-brand-base);\n --btn-border: transparent;\n}\n.root[data-color=\"brand\"][data-variant=\"ghost\"]:hover:not([disabled]) {\n --btn-bg: var(--color-surface-secondary);\n}\n\n/* Positive Filled */\n.root[data-color=\"positive\"][data-variant=\"filled\"] {\n --btn-bg: var(--color-action-positive-base);\n --btn-text: var(--color-on-positive);\n --btn-border: transparent;\n}\n.root[data-color=\"positive\"][data-variant=\"filled\"]:hover:not([disabled]) {\n --btn-bg: var(--color-action-positive-hover);\n}\n.root[data-color=\"positive\"][data-variant=\"filled\"]:active:not([disabled]) {\n --btn-bg: var(--color-action-positive-active);\n}\n\n/* Positive Outlined */\n.root[data-color=\"positive\"][data-variant=\"outlined\"] {\n --btn-bg: transparent;\n --btn-text: var(--color-content-positive-base);\n --btn-border: var(--color-content-positive-base);\n}\n.root[data-color=\"positive\"][data-variant=\"outlined\"]:hover:not([disabled]) {\n --btn-bg: var(--color-surface-secondary);\n}\n\n/* Positive Ghost */\n.root[data-color=\"positive\"][data-variant=\"ghost\"] {\n --btn-bg: transparent;\n --btn-text: var(--color-content-positive-base);\n --btn-border: transparent;\n}\n.root[data-color=\"positive\"][data-variant=\"ghost\"]:hover:not([disabled]) {\n --btn-bg: var(--color-surface-secondary);\n}\n\n/* Negative Filled */\n.root[data-color=\"negative\"][data-variant=\"filled\"] {\n --btn-bg: var(--color-action-negative-base);\n --btn-text: var(--color-on-negative);\n --btn-border: transparent;\n}\n.root[data-color=\"negative\"][data-variant=\"filled\"]:hover:not([disabled]) {\n --btn-bg: var(--color-action-negative-hover);\n}\n.root[data-color=\"negative\"][data-variant=\"filled\"]:active:not([disabled]) {\n --btn-bg: var(--color-action-negative-active);\n}\n\n/* Negative Outlined */\n.root[data-color=\"negative\"][data-variant=\"outlined\"] {\n --btn-bg: transparent;\n --btn-text: var(--color-content-negative-base);\n --btn-border: var(--color-content-negative-base);\n}\n.root[data-color=\"negative\"][data-variant=\"outlined\"]:hover:not([disabled]) {\n --btn-bg: var(--color-surface-secondary);\n}\n\n/* Negative Ghost */\n.root[data-color=\"negative\"][data-variant=\"ghost\"] {\n --btn-bg: transparent;\n --btn-text: var(--color-content-negative-base);\n --btn-border: transparent;\n}\n.root[data-color=\"negative\"][data-variant=\"ghost\"]:hover:not([disabled]) {\n --btn-bg: var(--color-surface-secondary);\n}\n\n/* Warn Filled */\n.root[data-color=\"warn\"][data-variant=\"filled\"] {\n --btn-bg: var(--color-action-warn-base);\n --btn-text: var(--color-on-warn);\n --btn-border: transparent;\n}\n.root[data-color=\"warn\"][data-variant=\"filled\"]:hover:not([disabled]) {\n --btn-bg: var(--color-action-warn-hover);\n}\n.root[data-color=\"warn\"][data-variant=\"filled\"]:active:not([disabled]) {\n --btn-bg: var(--color-action-warn-active);\n}\n\n/* Warn Outlined */\n.root[data-color=\"warn\"][data-variant=\"outlined\"] {\n --btn-bg: transparent;\n --btn-text: var(--color-content-warn-base);\n --btn-border: var(--color-content-warn-base);\n}\n.root[data-color=\"warn\"][data-variant=\"outlined\"]:hover:not([disabled]) {\n --btn-bg: var(--color-surface-secondary);\n}\n\n/* Warn Ghost */\n.root[data-color=\"warn\"][data-variant=\"ghost\"] {\n --btn-bg: transparent;\n --btn-text: var(--color-content-warn-base);\n --btn-border: transparent;\n}\n.root[data-color=\"warn\"][data-variant=\"ghost\"]:hover:not([disabled]) {\n --btn-bg: var(--color-surface-secondary);\n}\n\n/* Info Filled */\n.root[data-color=\"info\"][data-variant=\"filled\"] {\n --btn-bg: var(--color-action-info-base);\n --btn-text: var(--color-on-info);\n --btn-border: transparent;\n}\n.root[data-color=\"info\"][data-variant=\"filled\"]:hover:not([disabled]) {\n --btn-bg: var(--color-action-info-hover);\n}\n.root[data-color=\"info\"][data-variant=\"filled\"]:active:not([disabled]) {\n --btn-bg: var(--color-action-info-active);\n}\n\n/* Info Outlined */\n.root[data-color=\"info\"][data-variant=\"outlined\"] {\n --btn-bg: transparent;\n --btn-text: var(--color-content-info-base);\n --btn-border: var(--color-content-info-base);\n}\n.root[data-color=\"info\"][data-variant=\"outlined\"]:hover:not([disabled]) {\n --btn-bg: var(--color-surface-secondary);\n}\n\n/* Info Ghost */\n.root[data-color=\"info\"][data-variant=\"ghost\"] {\n --btn-bg: transparent;\n --btn-text: var(--color-content-info-base);\n --btn-border: transparent;\n}\n.root[data-color=\"info\"][data-variant=\"ghost\"]:hover:not([disabled]) {\n --btn-bg: var(--color-surface-secondary);\n}\n"],"mappings":"AAEA,IAAA,EAAU,CAAA,KAAO,cAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import { BaseButtonProps } from "./base-button.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./base-button.js";
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
._9nsqjG_backdrop {
|
|
2
|
+
background-color: var(--color-surface-backdrop-overlay);
|
|
3
|
+
backdrop-filter: blur(.5rem);
|
|
4
|
+
z-index: 1000;
|
|
5
|
+
transition: opacity .2s;
|
|
6
|
+
position: fixed;
|
|
7
|
+
inset: 0;
|
|
8
|
+
|
|
9
|
+
&[data-starting-style], &[data-ending-style] {
|
|
10
|
+
opacity: 0;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
._9nsqjG_popup {
|
|
15
|
+
--background: var(--color-surface-base);
|
|
16
|
+
--foreground: var(--color-content-neutral-base);
|
|
17
|
+
--border: var(--color-border-primary);
|
|
18
|
+
z-index: 1010;
|
|
19
|
+
box-sizing: border-box;
|
|
20
|
+
background-color: var(--background);
|
|
21
|
+
width: calc(100vw - 2rem);
|
|
22
|
+
max-width: 28rem;
|
|
23
|
+
color: var(--foreground);
|
|
24
|
+
border: 1px solid var(--border);
|
|
25
|
+
border-radius: var(--spacing-sm);
|
|
26
|
+
padding: var(--spacing-xl);
|
|
27
|
+
gap: var(--spacing-md);
|
|
28
|
+
flex-direction: column;
|
|
29
|
+
transition: opacity .2s cubic-bezier(.22, 1, .36, 1), transform .2s cubic-bezier(.22, 1, .36, 1);
|
|
30
|
+
display: flex;
|
|
31
|
+
position: fixed;
|
|
32
|
+
top: 50%;
|
|
33
|
+
left: 50%;
|
|
34
|
+
transform: translate(-50%, -50%);
|
|
35
|
+
|
|
36
|
+
&[data-starting-style], &[data-ending-style] {
|
|
37
|
+
opacity: 0;
|
|
38
|
+
transform: translate(-50%, -46%);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
&:focus-visible {
|
|
42
|
+
outline-style: solid;
|
|
43
|
+
outline-width: var(--stroke-focus-ring);
|
|
44
|
+
outline-color: var(--color-action-info-base);
|
|
45
|
+
outline-offset: var(--spacing-xxs);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
&[data-variant="neutral"] {
|
|
49
|
+
--border: var(--color-action-neutral-muted);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
&[data-variant="positive"] {
|
|
53
|
+
--border: var(--color-action-positive-muted);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
&[data-variant="negative"] {
|
|
57
|
+
--border: var(--color-action-negative-muted);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
&[data-variant="warn"] {
|
|
61
|
+
--border: var(--color-action-warn-muted);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
&[data-variant="info"] {
|
|
65
|
+
--border: var(--color-action-info-muted);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
._9nsqjG_actions {
|
|
70
|
+
justify-content: flex-end;
|
|
71
|
+
gap: var(--spacing-sm);
|
|
72
|
+
margin-top: var(--spacing-xs);
|
|
73
|
+
display: flex;
|
|
74
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { AlertDialog } from "@base-ui/react/alert-dialog";
|
|
2
|
+
import { Dialog } from "@base-ui/react/dialog";
|
|
3
|
+
|
|
4
|
+
//#region src/internals/base-dialog/base-dialog.d.ts
|
|
5
|
+
type BaseDialogVariant = "neutral" | "positive" | "negative" | "warn" | "info";
|
|
6
|
+
type BaseDialogOptions = {
|
|
7
|
+
/** The dialog heading text. */title: string; /** Optional body text shown below the title. */
|
|
8
|
+
description?: string; /** Label for the confirm button. Defaults to `"Confirm"`. */
|
|
9
|
+
confirmLabel?: string; /** Label for the cancel button. Defaults to `"Cancel"`. */
|
|
10
|
+
cancelLabel?: string; /** Visual variant controlling color and tone. Defaults to `"neutral"`. */
|
|
11
|
+
variant?: BaseDialogVariant; /** Called when the user clicks the confirm button. */
|
|
12
|
+
onConfirm?: () => void; /** Called when the user clicks the cancel button or dismisses the dialog. */
|
|
13
|
+
onCancel?: () => void;
|
|
14
|
+
};
|
|
15
|
+
type BaseDialogClassNames = {
|
|
16
|
+
backdrop?: string;
|
|
17
|
+
popup?: string;
|
|
18
|
+
actions?: string;
|
|
19
|
+
};
|
|
20
|
+
type BaseDialogProps = BaseDialogOptions & {
|
|
21
|
+
/** Whether the dialog is open. */open: boolean; /** Called when the dialog requests to close (backdrop click, Escape key). */
|
|
22
|
+
onOpenChange: (open: boolean) => void;
|
|
23
|
+
/**
|
|
24
|
+
* The DOM element to portal the dialog into.
|
|
25
|
+
* Defaults to `document.body` when not provided.
|
|
26
|
+
*/
|
|
27
|
+
container?: HTMLElement | null;
|
|
28
|
+
/**
|
|
29
|
+
* Render Mode
|
|
30
|
+
*/
|
|
31
|
+
as: typeof AlertDialog | typeof Dialog;
|
|
32
|
+
/**
|
|
33
|
+
* Optional className overrides for internal slots.
|
|
34
|
+
* Keys correspond to existing CSS module classes in `styles["..."]`.
|
|
35
|
+
*/
|
|
36
|
+
classNames?: BaseDialogClassNames;
|
|
37
|
+
};
|
|
38
|
+
//#endregion
|
|
39
|
+
export { BaseDialogClassNames, BaseDialogOptions, BaseDialogProps, BaseDialogVariant };
|
|
40
|
+
//# sourceMappingURL=base-dialog.d.ts.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Button as e}from"../../atoms/button/button.js";import"../../atoms/button/index.js";import{Text as t}from"../../atoms/text/text.js";import"../../atoms/text/index.js";import{usePortalConfig as n}from"../../helpers/portal/context/hooks.js";import"../../helpers/portal/index.js";import r from"./base-dialog.module.js";import"@base-ui/react/alert-dialog";import"@base-ui/react/dialog";import i from"clsx";import{useCallback as a}from"react";import{jsx as o,jsxs as s}from"react/jsx-runtime";const c=c=>{let{open:l,onOpenChange:u,title:d,description:f,confirmLabel:p=`Confirm`,cancelLabel:m=`Cancel`,variant:h=`neutral`,onConfirm:g,as:_,onCancel:v,classNames:y}=c,b=a(()=>{g?.(),u(!1)},[g,u]),x=a(()=>{v?.(),u(!1)},[v,u]),{resolveContainer:S}=n(),C=S(),w=_;return o(w.Root,{open:l,onOpenChange:u,children:s(w.Portal,{container:C,children:[o(w.Backdrop,{"data-slot":`base-dialog-backdrop`,className:i(r.backdrop,y?.backdrop)}),s(w.Popup,{"data-variant":h,"data-slot":`base-dialog-popup`,className:i(r.popup,y?.popup),children:[o(w.Title,{render:o(t,{variant:`h5`,children:d})}),f&&o(w.Description,{render:o(t,{variant:`body1`,children:f})}),s(`div`,{"data-slot":`base-dialog-actions`,className:i(r.actions,y?.actions),children:[o(w.Close,{render:o(e,{variant:`ghost`,color:`neutral`,text:m}),onClick:x}),o(w.Close,{render:o(e,{variant:`filled`,color:h,text:p}),onClick:b})]})]})]})})};export{c as BaseDialog};
|
|
2
|
+
//# sourceMappingURL=base-dialog.js.map
|