@cck-ui/core 0.23.0 → 0.25.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/cjs/components/divider/divider.cjs +434 -0
- package/cjs/components/divider/divider.cjs.map +1 -0
- package/cjs/components/divider/divider.module.cjs +10 -0
- package/cjs/components/divider/divider.module.cjs.map +1 -0
- package/cjs/components/divider/divider.utils.cjs +13 -0
- package/cjs/components/divider/divider.utils.cjs.map +1 -0
- package/cjs/components/divider/index.cjs +14 -0
- package/cjs/components/divider/index.cjs.map +1 -0
- package/cjs/components/portal/index.cjs +12 -0
- package/cjs/components/portal/index.cjs.map +1 -0
- package/cjs/components/portal/portal.cjs +116 -0
- package/cjs/components/portal/portal.cjs.map +1 -0
- package/cjs/index.cjs +69 -63
- package/cjs/index.cjs.map +1 -1
- package/esm/components/divider/divider.mjs +434 -0
- package/esm/components/divider/divider.mjs.map +1 -0
- package/esm/components/divider/divider.module.mjs +10 -0
- package/esm/components/divider/divider.module.mjs.map +1 -0
- package/esm/components/divider/divider.utils.mjs +14 -0
- package/esm/components/divider/divider.utils.mjs.map +1 -0
- package/esm/components/divider/index.mjs +11 -0
- package/esm/components/divider/index.mjs.map +1 -0
- package/esm/components/portal/index.mjs +9 -0
- package/esm/components/portal/index.mjs.map +1 -0
- package/esm/components/portal/portal.mjs +116 -0
- package/esm/components/portal/portal.mjs.map +1 -0
- package/esm/index.mjs +5 -1
- package/esm/index.mjs.map +1 -1
- package/lib/components/divider/divider.types.d.ts +28 -0
- package/lib/components/divider/divider.utils.d.ts +7 -0
- package/lib/components/divider/index.d.ts +6 -0
- package/lib/components/index.d.ts +2 -0
- package/lib/components/portal/index.d.ts +5 -0
- package/lib/components/portal/portal.types.d.ts +21 -0
- package/package.json +1 -1
- package/styles/divider.css +62 -0
- package/styles/divider.layer.css +63 -0
- package/styles.css +63 -0
- package/styles.layer.css +63 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { withInstall } from "../../core/utils/vue/install.mjs";
|
|
3
|
+
import { withExtend, withPropsFactory } from "../../core/utils/vue/statics.mjs";
|
|
4
|
+
import portal_default from "./portal.mjs";
|
|
5
|
+
const CPortal = withInstall(withPropsFactory(withExtend(portal_default)));
|
|
6
|
+
//#endregion
|
|
7
|
+
export { CPortal, CPortal as default };
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["Portal"],"sources":["../../../src/components/portal/index.ts"],"sourcesContent":["import { SFCWithInstall, withExtend, withInstall, withPropsFactory } from '../../core'\nimport Portal from './portal.vue'\n\nconst PortalWithStatic = withPropsFactory(withExtend(Portal))\n\nexport const CPortal: SFCWithInstall<typeof Portal> = withInstall(PortalWithStatic)\n\nexport default CPortal\n\nexport * from './portal.types'\n"],"mappings":";;;;AAKA,MAAa,UAAyC,YAF7B,iBAAiB,WAAWA,cAAM,CAEO,CAAgB"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import export_helper_default from "../../_virtual/_/plugin-vue/export-helper.mjs";
|
|
3
|
+
import { useComponentProps } from "../../core/config-provider/use-component-props/use-component-props.mjs";
|
|
4
|
+
import { Teleport, createBlock, createCommentVNode, defineComponent, onBeforeUnmount, onMounted, openBlock, ref, renderSlot, useAttrs } from "vue";
|
|
5
|
+
//#region packages/@cck-ui/core/src/components/portal/portal.vue
|
|
6
|
+
const _sfc_main = /*@__PURE__*/ defineComponent({
|
|
7
|
+
name: "CPortal",
|
|
8
|
+
__name: "portal",
|
|
9
|
+
props: {
|
|
10
|
+
target: {
|
|
11
|
+
type: null,
|
|
12
|
+
required: false
|
|
13
|
+
},
|
|
14
|
+
reuseTargetNode: {
|
|
15
|
+
type: Boolean,
|
|
16
|
+
required: false
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
setup(__props, { expose: __expose }) {
|
|
20
|
+
const attrs = useAttrs();
|
|
21
|
+
const rawProps = __props;
|
|
22
|
+
const defaultProps = { reuseTargetNode: true };
|
|
23
|
+
const props = useComponentProps({
|
|
24
|
+
component: "CPortal",
|
|
25
|
+
defaultProps,
|
|
26
|
+
props: rawProps
|
|
27
|
+
});
|
|
28
|
+
const container = ref(null);
|
|
29
|
+
let createdNode = null;
|
|
30
|
+
function createPortalNode(nodeAttrs) {
|
|
31
|
+
const node = document.createElement("div");
|
|
32
|
+
node.setAttribute("data-portal", "true");
|
|
33
|
+
const className = nodeAttrs.class || nodeAttrs.className;
|
|
34
|
+
if (className) node.classList.add(...String(className).split(" ").filter(Boolean));
|
|
35
|
+
if (nodeAttrs.style) Object.assign(node.style, nodeAttrs.style);
|
|
36
|
+
if (nodeAttrs.id) node.setAttribute("id", nodeAttrs.id);
|
|
37
|
+
Object.keys(nodeAttrs).forEach((key) => {
|
|
38
|
+
if (![
|
|
39
|
+
"class",
|
|
40
|
+
"className",
|
|
41
|
+
"style",
|
|
42
|
+
"id"
|
|
43
|
+
].includes(key)) node.setAttribute(key, nodeAttrs[key]);
|
|
44
|
+
});
|
|
45
|
+
return node;
|
|
46
|
+
}
|
|
47
|
+
function getTargetNode() {
|
|
48
|
+
const target = props.value.target;
|
|
49
|
+
const reuseTargetNode = props.value.reuseTargetNode;
|
|
50
|
+
if (target) {
|
|
51
|
+
if (typeof target === "string") {
|
|
52
|
+
const found = document.querySelector(target);
|
|
53
|
+
if (found) return found;
|
|
54
|
+
const node = createPortalNode(attrs);
|
|
55
|
+
document.body.appendChild(node);
|
|
56
|
+
createdNode = node;
|
|
57
|
+
return node;
|
|
58
|
+
}
|
|
59
|
+
return target;
|
|
60
|
+
}
|
|
61
|
+
if (reuseTargetNode) {
|
|
62
|
+
const existing = document.querySelector("[data-cck-shared-portal]");
|
|
63
|
+
if (existing) return existing;
|
|
64
|
+
const node = createPortalNode(attrs);
|
|
65
|
+
node.setAttribute("data-cck-shared-portal", "true");
|
|
66
|
+
document.body.appendChild(node);
|
|
67
|
+
createdNode = node;
|
|
68
|
+
return node;
|
|
69
|
+
}
|
|
70
|
+
const node = createPortalNode(attrs);
|
|
71
|
+
document.body.appendChild(node);
|
|
72
|
+
createdNode = node;
|
|
73
|
+
return node;
|
|
74
|
+
}
|
|
75
|
+
onMounted(() => {
|
|
76
|
+
container.value = getTargetNode();
|
|
77
|
+
});
|
|
78
|
+
onBeforeUnmount(() => {
|
|
79
|
+
if (createdNode && !createdNode.hasAttribute("data-cck-shared-portal")) {
|
|
80
|
+
if (createdNode.parentNode) createdNode.parentNode.removeChild(createdNode);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
__expose({ root: container });
|
|
84
|
+
const __returned__ = {
|
|
85
|
+
attrs,
|
|
86
|
+
rawProps,
|
|
87
|
+
defaultProps,
|
|
88
|
+
props,
|
|
89
|
+
container,
|
|
90
|
+
get createdNode() {
|
|
91
|
+
return createdNode;
|
|
92
|
+
},
|
|
93
|
+
set createdNode(v) {
|
|
94
|
+
createdNode = v;
|
|
95
|
+
},
|
|
96
|
+
createPortalNode,
|
|
97
|
+
getTargetNode
|
|
98
|
+
};
|
|
99
|
+
Object.defineProperty(__returned__, "__isScriptSetup", {
|
|
100
|
+
enumerable: false,
|
|
101
|
+
value: true
|
|
102
|
+
});
|
|
103
|
+
return __returned__;
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
107
|
+
return $setup.container ? (openBlock(), createBlock(Teleport, {
|
|
108
|
+
key: 0,
|
|
109
|
+
to: $setup.container
|
|
110
|
+
}, [renderSlot(_ctx.$slots, "default")], 8, ["to"])) : createCommentVNode("v-if", true);
|
|
111
|
+
}
|
|
112
|
+
var portal_default = /*#__PURE__*/ export_helper_default(_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/cck-ui/cck-ui/packages/@cck-ui/core/src/components/portal/portal.vue"]]);
|
|
113
|
+
//#endregion
|
|
114
|
+
export { portal_default as default };
|
|
115
|
+
|
|
116
|
+
//# sourceMappingURL=portal.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal.mjs","names":[],"sources":["../../../src/components/portal/portal.vue"],"sourcesContent":["<template>\n <Teleport v-if=\"container\" :to=\"container\">\n <slot />\n </Teleport>\n</template>\n\n<script setup lang=\"ts\">\nimport { onBeforeUnmount, onMounted, ref, useAttrs } from 'vue'\nimport { PortalProps } from './portal.types'\nimport { useComponentProps } from '../../core'\n\ndefineOptions({\n name: 'CPortal',\n})\n\nconst attrs = useAttrs()\n\nconst rawProps = defineProps<PortalProps>()\n\nconst defaultProps = {\n reuseTargetNode: true,\n} satisfies Partial<PortalProps>\n\nconst props = useComponentProps({\n component: 'CPortal',\n defaultProps,\n props: rawProps,\n})\n\nconst container = ref<HTMLElement | null>(null)\nlet createdNode: HTMLElement | null = null\n\nfunction createPortalNode(nodeAttrs: Record<string, any>): HTMLElement {\n const node = document.createElement('div')\n node.setAttribute('data-portal', 'true')\n\n const className = nodeAttrs.class || nodeAttrs.className\n if (className) {\n node.classList.add(...String(className).split(' ').filter(Boolean))\n }\n if (nodeAttrs.style) {\n Object.assign(node.style, nodeAttrs.style)\n }\n if (nodeAttrs.id) {\n node.setAttribute('id', nodeAttrs.id)\n }\n Object.keys(nodeAttrs).forEach((key) => {\n if (!['class', 'className', 'style', 'id'].includes(key)) {\n node.setAttribute(key, nodeAttrs[key])\n }\n })\n\n return node\n}\n\nfunction getTargetNode(): HTMLElement {\n const target = props.value.target\n const reuseTargetNode = props.value.reuseTargetNode\n\n if (target) {\n if (typeof target === 'string') {\n const found = document.querySelector<HTMLElement>(target)\n if (found) {\n return found\n }\n const node = createPortalNode(attrs)\n document.body.appendChild(node)\n createdNode = node\n return node\n }\n return target\n }\n\n if (reuseTargetNode) {\n const existing = document.querySelector<HTMLElement>('[data-cck-shared-portal]')\n if (existing) {\n return existing\n }\n const node = createPortalNode(attrs)\n node.setAttribute('data-cck-shared-portal', 'true')\n document.body.appendChild(node)\n createdNode = node\n return node\n }\n\n const node = createPortalNode(attrs)\n document.body.appendChild(node)\n createdNode = node\n return node\n}\n\nonMounted(() => {\n container.value = getTargetNode()\n})\n\nonBeforeUnmount(() => {\n if (createdNode && !createdNode.hasAttribute('data-cck-shared-portal')) {\n if (createdNode.parentNode) {\n createdNode.parentNode.removeChild(createdNode)\n }\n }\n})\n\ndefineExpose({\n root: container,\n})\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;EAeA,MAAM,QAAQ,SAAS;EAEvB,MAAM,WAAW;EAEjB,MAAM,eAAe,EACnB,iBAAiB,KACnB;EAEA,MAAM,QAAQ,kBAAkB;GAC9B,WAAW;GACX;GACA,OAAO;EACT,CAAC;EAED,MAAM,YAAY,IAAwB,IAAI;EAC9C,IAAI,cAAkC;EAEtC,SAAS,iBAAiB,WAA6C;GACrE,MAAM,OAAO,SAAS,cAAc,KAAK;GACzC,KAAK,aAAa,eAAe,MAAM;GAEvC,MAAM,YAAY,UAAU,SAAS,UAAU;GAC/C,IAAI,WACF,KAAK,UAAU,IAAI,GAAG,OAAO,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,OAAO,CAAC;GAEpE,IAAI,UAAU,OACZ,OAAO,OAAO,KAAK,OAAO,UAAU,KAAK;GAE3C,IAAI,UAAU,IACZ,KAAK,aAAa,MAAM,UAAU,EAAE;GAEtC,OAAO,KAAK,SAAS,CAAC,CAAC,SAAS,QAAQ;IACtC,IAAI,CAAC;KAAC;KAAS;KAAa;KAAS;IAAI,CAAC,CAAC,SAAS,GAAG,GACrD,KAAK,aAAa,KAAK,UAAU,IAAI;GAEzC,CAAC;GAED,OAAO;EACT;EAEA,SAAS,gBAA6B;GACpC,MAAM,SAAS,MAAM,MAAM;GAC3B,MAAM,kBAAkB,MAAM,MAAM;GAEpC,IAAI,QAAQ;IACV,IAAI,OAAO,WAAW,UAAU;KAC9B,MAAM,QAAQ,SAAS,cAA2B,MAAM;KACxD,IAAI,OACF,OAAO;KAET,MAAM,OAAO,iBAAiB,KAAK;KACnC,SAAS,KAAK,YAAY,IAAI;KAC9B,cAAc;KACd,OAAO;IACT;IACA,OAAO;GACT;GAEA,IAAI,iBAAiB;IACnB,MAAM,WAAW,SAAS,cAA2B,0BAA0B;IAC/E,IAAI,UACF,OAAO;IAET,MAAM,OAAO,iBAAiB,KAAK;IACnC,KAAK,aAAa,0BAA0B,MAAM;IAClD,SAAS,KAAK,YAAY,IAAI;IAC9B,cAAc;IACd,OAAO;GACT;GAEA,MAAM,OAAO,iBAAiB,KAAK;GACnC,SAAS,KAAK,YAAY,IAAI;GAC9B,cAAc;GACd,OAAO;EACT;EAEA,gBAAgB;GACd,UAAU,QAAQ,cAAc;EAClC,CAAC;EAED,sBAAsB;GACpB,IAAI,eAAe,CAAC,YAAY,aAAa,wBAAwB;QAC/D,YAAY,YACd,YAAY,WAAW,YAAY,WAAW;GAAA;EAGpD,CAAC;EAED,SAAa,EACX,MAAM,UACR,CAAC;;;;;;;;;;;;;;;;;;;;;;;;QAxGiB,OAAA,aAAA,UAAA,GAAhB,YAEW,UAAA;;EAFiB,IAAI,OAAA;KAC9B,WAAQ,KAAA,QAAA,SAAA,CAAA,GAAA,GAAA,CAAA,IAAA,CAAA,KAAA,mBAAA,QAAA,IAAA"}
|
package/esm/index.mjs
CHANGED
|
@@ -63,6 +63,7 @@ import { CButton, CButtonGroup, CButtonGroupSection } from "./components/button/
|
|
|
63
63
|
import { CCenter } from "./components/center/index.mjs";
|
|
64
64
|
import { CContainer } from "./components/container/index.mjs";
|
|
65
65
|
import { CCopyButton } from "./components/copy-button/index.mjs";
|
|
66
|
+
import { CDivider } from "./components/divider/index.mjs";
|
|
66
67
|
import { CEmptyState, CEmptyStateActions, CEmptyStateDescription, CEmptyStateIndicator, CEmptyStateTitle } from "./components/empty-state/index.mjs";
|
|
67
68
|
import { CFileButton } from "./components/file-button/index.mjs";
|
|
68
69
|
import { CFlex } from "./components/flex/index.mjs";
|
|
@@ -71,6 +72,7 @@ import { CCol, CGrid } from "./components/grid/index.mjs";
|
|
|
71
72
|
import { CGroup } from "./components/group/index.mjs";
|
|
72
73
|
import { CImage } from "./components/image/index.mjs";
|
|
73
74
|
import { CPaper } from "./components/paper/index.mjs";
|
|
75
|
+
import { CPortal } from "./components/portal/index.mjs";
|
|
74
76
|
import { CSemiCircleProgress } from "./components/semi-circle-progress/index.mjs";
|
|
75
77
|
import { CSimpleGrid } from "./components/simple-grid/index.mjs";
|
|
76
78
|
import { CSkeleton } from "./components/skeleton/index.mjs";
|
|
@@ -98,6 +100,7 @@ const components = [
|
|
|
98
100
|
CCol,
|
|
99
101
|
CContainer,
|
|
100
102
|
CCopyButton,
|
|
103
|
+
CDivider,
|
|
101
104
|
CEmptyState,
|
|
102
105
|
CEmptyStateActions,
|
|
103
106
|
CEmptyStateDescription,
|
|
@@ -111,6 +114,7 @@ const components = [
|
|
|
111
114
|
CImage,
|
|
112
115
|
CLoader,
|
|
113
116
|
CPaper,
|
|
117
|
+
CPortal,
|
|
114
118
|
CSemiCircleProgress,
|
|
115
119
|
CSimpleGrid,
|
|
116
120
|
CSkeleton,
|
|
@@ -132,6 +136,6 @@ const CckUI = { install(app) {
|
|
|
132
136
|
});
|
|
133
137
|
} };
|
|
134
138
|
//#endregion
|
|
135
|
-
export { CActionIcon, CActionIconGroup, CActionIconGroupSection, CAlert, CAspectRatio, CBox, CButton, CButtonGroup, CButtonGroupSection, transitions as CCK_TRANSITIONS, CCenter, CCloseButton, CCol, CContainer, CCopyButton, CDefaultLoaders, CEmptyState, CEmptyStateActions, CEmptyStateDescription, CEmptyStateIndicator, CEmptyStateTitle, CFileButton, CFlex, CFocusTrap, CGrid, CGroup, CImage, CLoader, CONFIG_KEY, CPaper, CSemiCircleProgress, CSimpleGrid, CSkeleton, CSpace, CSplitter, CSplitterPane, CStack, CText, CTransition, CTypography, CVisuallyHidden, CckConfigProvider, CckUI, CckUI as default, DEFAULT_THEME, FOCUS_CLASS_NAMES, STYLE_PROPS_DATA, THEME_KEY, UnstyledButton, alpha, camelToKebabCase, colorsTuple, createTheme, createVarsResolver, darken, deepMerge, defaultCssVariablesResolver, defaultVariantColorsResolver, em, extractStyleProps, filterProps, getBaseValue, getBreakpointValue, getCSSColorVariables, getComponentName, getFontSize, getGradient, getLineHeight, getPrimaryShade, getRadius, getShadow, getSize, getSortedBreakpoints, getSpacing, getThemeColor, getTransitionProps, hashStyleProps, isLightColor, isNumber, isNumberLike, isString, isStringNumber, isUndefined, isVirtualColor, keys, luminance, mergeThemeOverrides, normalizeNumberLikeStringProp, numberLikeStringToNumber, parseStyleProps, parseThemeColor, px, rem, resolveClassNames, resolveStyles, responsiveStyleManager, rgb, rgba, stylesToString, toRgba, useCckClassNamesPrefix, useCckColorScheme, useCckCssVariablesResolver, useCckEnv, useCckIsHeadless, useCckStyleNonce, useCckStylesTransform, useCckSxTransform, useCckTheme, useCckWithStaticClasses, useComponentProps, useConfigContext, useProviderColorScheme, useRandomClassName, useStyles, virtualColor, withClasses, withExtend, withInstall, withPropsDefaultSetter, withPropsFactory, withVarsResolver };
|
|
139
|
+
export { CActionIcon, CActionIconGroup, CActionIconGroupSection, CAlert, CAspectRatio, CBox, CButton, CButtonGroup, CButtonGroupSection, transitions as CCK_TRANSITIONS, CCenter, CCloseButton, CCol, CContainer, CCopyButton, CDefaultLoaders, CDivider, CEmptyState, CEmptyStateActions, CEmptyStateDescription, CEmptyStateIndicator, CEmptyStateTitle, CFileButton, CFlex, CFocusTrap, CGrid, CGroup, CImage, CLoader, CONFIG_KEY, CPaper, CPortal, CSemiCircleProgress, CSimpleGrid, CSkeleton, CSpace, CSplitter, CSplitterPane, CStack, CText, CTransition, CTypography, CVisuallyHidden, CckConfigProvider, CckUI, CckUI as default, DEFAULT_THEME, FOCUS_CLASS_NAMES, STYLE_PROPS_DATA, THEME_KEY, UnstyledButton, alpha, camelToKebabCase, colorsTuple, createTheme, createVarsResolver, darken, deepMerge, defaultCssVariablesResolver, defaultVariantColorsResolver, em, extractStyleProps, filterProps, getBaseValue, getBreakpointValue, getCSSColorVariables, getComponentName, getFontSize, getGradient, getLineHeight, getPrimaryShade, getRadius, getShadow, getSize, getSortedBreakpoints, getSpacing, getThemeColor, getTransitionProps, hashStyleProps, isLightColor, isNumber, isNumberLike, isString, isStringNumber, isUndefined, isVirtualColor, keys, luminance, mergeThemeOverrides, normalizeNumberLikeStringProp, numberLikeStringToNumber, parseStyleProps, parseThemeColor, px, rem, resolveClassNames, resolveStyles, responsiveStyleManager, rgb, rgba, stylesToString, toRgba, useCckClassNamesPrefix, useCckColorScheme, useCckCssVariablesResolver, useCckEnv, useCckIsHeadless, useCckStyleNonce, useCckStylesTransform, useCckSxTransform, useCckTheme, useCckWithStaticClasses, useComponentProps, useConfigContext, useProviderColorScheme, useRandomClassName, useStyles, virtualColor, withClasses, withExtend, withInstall, withPropsDefaultSetter, withPropsFactory, withVarsResolver };
|
|
136
140
|
|
|
137
141
|
//# sourceMappingURL=index.mjs.map
|
package/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["import type { App, Plugin } from 'vue'\nimport {\n CActionIcon,\n CActionIconGroup,\n CActionIconGroupSection,\n CAlert,\n CAspectRatio,\n CButton,\n CButtonGroup,\n CButtonGroupSection,\n CCenter,\n CCloseButton,\n CCol,\n CContainer,\n CCopyButton,\n CEmptyState,\n CEmptyStateActions,\n CEmptyStateDescription,\n CEmptyStateIndicator,\n CEmptyStateTitle,\n CFileButton,\n CFlex,\n CFocusTrap,\n CGrid,\n CGroup,\n CImage,\n CLoader,\n CPaper,\n CSemiCircleProgress,\n CSimpleGrid,\n CSkeleton,\n CSpace,\n CSplitter,\n CSplitterPane,\n CStack,\n CText,\n CTransition,\n CTypography,\n CVisuallyHidden,\n UnstyledButton,\n} from './components'\nimport { CckConfigProvider, CBox } from './core'\n\nconst INSTALLED_KEY = Symbol('INSTALLED_KEY')\n\nconst components = [\n CckConfigProvider,\n CBox,\n CActionIcon,\n CActionIconGroup,\n CActionIconGroupSection,\n CAlert,\n CAspectRatio,\n CButton,\n CButtonGroup,\n CButtonGroupSection,\n CCenter,\n CCloseButton,\n CCol,\n CContainer,\n CCopyButton,\n CEmptyState,\n CEmptyStateActions,\n CEmptyStateDescription,\n CEmptyStateIndicator,\n CEmptyStateTitle,\n CFileButton,\n CFlex,\n CFocusTrap,\n CGrid,\n CGroup,\n CImage,\n CLoader,\n CPaper,\n CSemiCircleProgress,\n CSimpleGrid,\n CSkeleton,\n CSpace,\n CSplitter,\n CSplitterPane,\n CStack,\n CText,\n CTransition,\n CTypography,\n CVisuallyHidden,\n UnstyledButton,\n]\n\nconst CckUI: Plugin = {\n install(app: App) {\n if ((app as any)[INSTALLED_KEY]) {\n return\n }\n ;(app as any)[INSTALLED_KEY] = true\n components.forEach((c) => {\n if (c.name) {\n app.component(c.name, c)\n }\n })\n },\n}\n\nexport default CckUI\nexport { CckUI }\n\nexport * from './components'\nexport * from './core'\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["import type { App, Plugin } from 'vue'\nimport {\n CActionIcon,\n CActionIconGroup,\n CActionIconGroupSection,\n CAlert,\n CAspectRatio,\n CButton,\n CButtonGroup,\n CButtonGroupSection,\n CCenter,\n CCloseButton,\n CCol,\n CContainer,\n CCopyButton,\n CDivider,\n CEmptyState,\n CEmptyStateActions,\n CEmptyStateDescription,\n CEmptyStateIndicator,\n CEmptyStateTitle,\n CFileButton,\n CFlex,\n CFocusTrap,\n CGrid,\n CGroup,\n CImage,\n CLoader,\n CPaper,\n CPortal,\n CSemiCircleProgress,\n CSimpleGrid,\n CSkeleton,\n CSpace,\n CSplitter,\n CSplitterPane,\n CStack,\n CText,\n CTransition,\n CTypography,\n CVisuallyHidden,\n UnstyledButton,\n} from './components'\nimport { CckConfigProvider, CBox } from './core'\n\nconst INSTALLED_KEY = Symbol('INSTALLED_KEY')\n\nconst components = [\n CckConfigProvider,\n CBox,\n CActionIcon,\n CActionIconGroup,\n CActionIconGroupSection,\n CAlert,\n CAspectRatio,\n CButton,\n CButtonGroup,\n CButtonGroupSection,\n CCenter,\n CCloseButton,\n CCol,\n CContainer,\n CCopyButton,\n CDivider,\n CEmptyState,\n CEmptyStateActions,\n CEmptyStateDescription,\n CEmptyStateIndicator,\n CEmptyStateTitle,\n CFileButton,\n CFlex,\n CFocusTrap,\n CGrid,\n CGroup,\n CImage,\n CLoader,\n CPaper,\n CPortal,\n CSemiCircleProgress,\n CSimpleGrid,\n CSkeleton,\n CSpace,\n CSplitter,\n CSplitterPane,\n CStack,\n CText,\n CTransition,\n CTypography,\n CVisuallyHidden,\n UnstyledButton,\n]\n\nconst CckUI: Plugin = {\n install(app: App) {\n if ((app as any)[INSTALLED_KEY]) {\n return\n }\n ;(app as any)[INSTALLED_KEY] = true\n components.forEach((c) => {\n if (c.name) {\n app.component(c.name, c)\n }\n })\n },\n}\n\nexport default CckUI\nexport { CckUI }\n\nexport * from './components'\nexport * from './core'\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,MAAM,gBAAgB,OAAO,eAAe;AAE5C,MAAM,aAAa;CACjB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAM,QAAgB,EACpB,QAAQ,KAAU;CAChB,IAAK,IAAY,gBACf;CAED,IAAa,iBAAiB;CAC/B,WAAW,SAAS,MAAM;EACxB,IAAI,EAAE,MACJ,IAAI,UAAU,EAAE,MAAM,CAAC;CAE3B,CAAC;AACH,EACF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { BoxProps, CColor, CSize, ElementProps, Factory, StylesApiProps } from '../../core';
|
|
2
|
+
export type DividerStylesNames = 'root' | 'label';
|
|
3
|
+
export type DividerVariant = 'solid' | 'dashed' | 'dotted';
|
|
4
|
+
export type DividerCssVariables = {
|
|
5
|
+
root: '--divider-color' | '--divider-border-style' | '--divider-size';
|
|
6
|
+
};
|
|
7
|
+
export interface DividerProps extends BoxProps, StylesApiProps<DividerFactory>, /* @vue-ignore */ ElementProps<'div'> {
|
|
8
|
+
/** Key of `theme.colors` or any valid CSS color value */
|
|
9
|
+
color?: CColor;
|
|
10
|
+
/**
|
|
11
|
+
* Controls width/height (depends on orientation)
|
|
12
|
+
* @default 'xs'
|
|
13
|
+
*/
|
|
14
|
+
size?: CSize | number | (string & {});
|
|
15
|
+
/**
|
|
16
|
+
* label position
|
|
17
|
+
* @default 'center'
|
|
18
|
+
*/
|
|
19
|
+
labelPosition?: 'left' | 'center' | 'right';
|
|
20
|
+
orientation?: 'horizontal' | 'vertical';
|
|
21
|
+
}
|
|
22
|
+
export type DividerFactory = Factory<{
|
|
23
|
+
props: DividerProps;
|
|
24
|
+
ref: HTMLDivElement;
|
|
25
|
+
stylesNames: DividerStylesNames;
|
|
26
|
+
vars: DividerCssVariables;
|
|
27
|
+
variant: DividerVariant;
|
|
28
|
+
}>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const varsResolver: import("../..").VarsResolver<{
|
|
2
|
+
props: import("./divider.types").DividerProps;
|
|
3
|
+
ref: HTMLDivElement;
|
|
4
|
+
stylesNames: import("./divider.types").DividerStylesNames;
|
|
5
|
+
vars: import("./divider.types").DividerCssVariables;
|
|
6
|
+
variant: import("./divider.types").DividerVariant;
|
|
7
|
+
}>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { SFCWithInstallAndClasses } from '../../core';
|
|
2
|
+
import classes from './divider.module.css';
|
|
3
|
+
import Divider from './divider.vue';
|
|
4
|
+
export declare const CDivider: SFCWithInstallAndClasses<typeof Divider, typeof classes>;
|
|
5
|
+
export default CDivider;
|
|
6
|
+
export * from './divider.types';
|
|
@@ -6,6 +6,7 @@ export * from './center';
|
|
|
6
6
|
export * from './close-button';
|
|
7
7
|
export * from './container';
|
|
8
8
|
export * from './copy-button';
|
|
9
|
+
export * from './divider';
|
|
9
10
|
export * from './empty-state';
|
|
10
11
|
export * from './file-button';
|
|
11
12
|
export * from './flex';
|
|
@@ -15,6 +16,7 @@ export * from './group';
|
|
|
15
16
|
export * from './image';
|
|
16
17
|
export * from './loader';
|
|
17
18
|
export * from './paper';
|
|
19
|
+
export * from './portal';
|
|
18
20
|
export * from './semi-circle-progress';
|
|
19
21
|
export * from './simple-grid';
|
|
20
22
|
export * from './skeleton';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface PortalProps {
|
|
2
|
+
/**
|
|
3
|
+
* Target element where portal should be rendered. Accepts:
|
|
4
|
+
* - HTMLElement: Renders portal inside this element
|
|
5
|
+
* - string: CSS selector - renders inside first matching element
|
|
6
|
+
* - undefined: Uses shared portal node or creates new on based on `reuseTargetNode`
|
|
7
|
+
*
|
|
8
|
+
* Note: If selector doesn't match any element, portal will not render
|
|
9
|
+
*/
|
|
10
|
+
target?: HTMLElement | string;
|
|
11
|
+
/**
|
|
12
|
+
* When true and target is not specified, all Portal instances share a single
|
|
13
|
+
* container node appended to document.body. When false, each Portal creates
|
|
14
|
+
* its own container node.
|
|
15
|
+
*
|
|
16
|
+
* Has no effect when target is specified.
|
|
17
|
+
*
|
|
18
|
+
* @default true
|
|
19
|
+
*/
|
|
20
|
+
reuseTargetNode?: boolean;
|
|
21
|
+
}
|
package/package.json
CHANGED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
.m_35209716 {
|
|
2
|
+
--divider-size-xs: calc(0.0625rem * var(--c-scale));
|
|
3
|
+
--divider-size-sm: calc(0.125rem * var(--c-scale));
|
|
4
|
+
--divider-size-md: calc(0.1875rem * var(--c-scale));
|
|
5
|
+
--divider-size-lg: calc(0.25rem * var(--c-scale));
|
|
6
|
+
--divider-size-xl: calc(0.3125rem * var(--c-scale));
|
|
7
|
+
--divider-size: var(--divider-size-xs);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
:where([data-c-color-scheme='light']) .m_35209716 {
|
|
11
|
+
--divider-color: var(--c-color-gray-3);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
:where([data-c-color-scheme='dark']) .m_35209716 {
|
|
15
|
+
--divider-color: var(--c-color-dark-4);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.m_35209716:where([data-orientation='horizontal']) {
|
|
19
|
+
border-top: var(--divider-size) var(--divider-border-style, solid) var(--divider-color);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.m_35209716:where([data-orientation='vertical']) {
|
|
23
|
+
border-inline-start: var(--divider-size) var(--divider-border-style, solid) var(--divider-color);
|
|
24
|
+
height: auto;
|
|
25
|
+
align-self: stretch;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.m_35209716:where([data-with-label]) {
|
|
29
|
+
border: 0;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.m_6e972f40 {
|
|
33
|
+
display: flex;
|
|
34
|
+
align-items: center;
|
|
35
|
+
font-size: var(--c-font-size-xs);
|
|
36
|
+
color: var(--c-color-dimmed);
|
|
37
|
+
white-space: nowrap;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.m_6e972f40:where([data-position='left'])::before {
|
|
41
|
+
display: none;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.m_6e972f40:where([data-position='right'])::after {
|
|
45
|
+
display: none;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.m_6e972f40::before {
|
|
49
|
+
content: '';
|
|
50
|
+
flex: 1;
|
|
51
|
+
height: calc(0.0625rem * var(--c-scale));
|
|
52
|
+
border-top: var(--divider-size) var(--divider-border-style, solid) var(--divider-color);
|
|
53
|
+
margin-inline-end: var(--c-spacing-xs);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.m_6e972f40::after {
|
|
57
|
+
content: '';
|
|
58
|
+
flex: 1;
|
|
59
|
+
height: calc(0.0625rem * var(--c-scale));
|
|
60
|
+
border-top: var(--divider-size) var(--divider-border-style, solid) var(--divider-color);
|
|
61
|
+
margin-inline-start: var(--c-spacing-xs);
|
|
62
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
@layer cck {.m_35209716 {
|
|
2
|
+
--divider-size-xs: calc(0.0625rem * var(--c-scale));
|
|
3
|
+
--divider-size-sm: calc(0.125rem * var(--c-scale));
|
|
4
|
+
--divider-size-md: calc(0.1875rem * var(--c-scale));
|
|
5
|
+
--divider-size-lg: calc(0.25rem * var(--c-scale));
|
|
6
|
+
--divider-size-xl: calc(0.3125rem * var(--c-scale));
|
|
7
|
+
--divider-size: var(--divider-size-xs);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
:where([data-c-color-scheme='light']) .m_35209716 {
|
|
11
|
+
--divider-color: var(--c-color-gray-3);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
:where([data-c-color-scheme='dark']) .m_35209716 {
|
|
15
|
+
--divider-color: var(--c-color-dark-4);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.m_35209716:where([data-orientation='horizontal']) {
|
|
19
|
+
border-top: var(--divider-size) var(--divider-border-style, solid) var(--divider-color);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.m_35209716:where([data-orientation='vertical']) {
|
|
23
|
+
border-inline-start: var(--divider-size) var(--divider-border-style, solid) var(--divider-color);
|
|
24
|
+
height: auto;
|
|
25
|
+
align-self: stretch;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.m_35209716:where([data-with-label]) {
|
|
29
|
+
border: 0;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.m_6e972f40 {
|
|
33
|
+
display: flex;
|
|
34
|
+
align-items: center;
|
|
35
|
+
font-size: var(--c-font-size-xs);
|
|
36
|
+
color: var(--c-color-dimmed);
|
|
37
|
+
white-space: nowrap;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.m_6e972f40:where([data-position='left'])::before {
|
|
41
|
+
display: none;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.m_6e972f40:where([data-position='right'])::after {
|
|
45
|
+
display: none;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.m_6e972f40::before {
|
|
49
|
+
content: '';
|
|
50
|
+
flex: 1;
|
|
51
|
+
height: calc(0.0625rem * var(--c-scale));
|
|
52
|
+
border-top: var(--divider-size) var(--divider-border-style, solid) var(--divider-color);
|
|
53
|
+
margin-inline-end: var(--c-spacing-xs);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.m_6e972f40::after {
|
|
57
|
+
content: '';
|
|
58
|
+
flex: 1;
|
|
59
|
+
height: calc(0.0625rem * var(--c-scale));
|
|
60
|
+
border-top: var(--divider-size) var(--divider-border-style, solid) var(--divider-color);
|
|
61
|
+
margin-inline-start: var(--c-spacing-xs);
|
|
62
|
+
}
|
|
63
|
+
}
|
package/styles.css
CHANGED
|
@@ -1276,6 +1276,69 @@ fieldset:disabled .c-active:active {
|
|
|
1276
1276
|
margin-inline: auto;
|
|
1277
1277
|
}
|
|
1278
1278
|
|
|
1279
|
+
.m_35209716 {
|
|
1280
|
+
--divider-size-xs: calc(0.0625rem * var(--c-scale));
|
|
1281
|
+
--divider-size-sm: calc(0.125rem * var(--c-scale));
|
|
1282
|
+
--divider-size-md: calc(0.1875rem * var(--c-scale));
|
|
1283
|
+
--divider-size-lg: calc(0.25rem * var(--c-scale));
|
|
1284
|
+
--divider-size-xl: calc(0.3125rem * var(--c-scale));
|
|
1285
|
+
--divider-size: var(--divider-size-xs);
|
|
1286
|
+
}
|
|
1287
|
+
|
|
1288
|
+
:where([data-c-color-scheme='light']) .m_35209716 {
|
|
1289
|
+
--divider-color: var(--c-color-gray-3);
|
|
1290
|
+
}
|
|
1291
|
+
|
|
1292
|
+
:where([data-c-color-scheme='dark']) .m_35209716 {
|
|
1293
|
+
--divider-color: var(--c-color-dark-4);
|
|
1294
|
+
}
|
|
1295
|
+
|
|
1296
|
+
.m_35209716:where([data-orientation='horizontal']) {
|
|
1297
|
+
border-top: var(--divider-size) var(--divider-border-style, solid) var(--divider-color);
|
|
1298
|
+
}
|
|
1299
|
+
|
|
1300
|
+
.m_35209716:where([data-orientation='vertical']) {
|
|
1301
|
+
border-inline-start: var(--divider-size) var(--divider-border-style, solid) var(--divider-color);
|
|
1302
|
+
height: auto;
|
|
1303
|
+
align-self: stretch;
|
|
1304
|
+
}
|
|
1305
|
+
|
|
1306
|
+
.m_35209716:where([data-with-label]) {
|
|
1307
|
+
border: 0;
|
|
1308
|
+
}
|
|
1309
|
+
|
|
1310
|
+
.m_6e972f40 {
|
|
1311
|
+
display: flex;
|
|
1312
|
+
align-items: center;
|
|
1313
|
+
font-size: var(--c-font-size-xs);
|
|
1314
|
+
color: var(--c-color-dimmed);
|
|
1315
|
+
white-space: nowrap;
|
|
1316
|
+
}
|
|
1317
|
+
|
|
1318
|
+
.m_6e972f40:where([data-position='left'])::before {
|
|
1319
|
+
display: none;
|
|
1320
|
+
}
|
|
1321
|
+
|
|
1322
|
+
.m_6e972f40:where([data-position='right'])::after {
|
|
1323
|
+
display: none;
|
|
1324
|
+
}
|
|
1325
|
+
|
|
1326
|
+
.m_6e972f40::before {
|
|
1327
|
+
content: '';
|
|
1328
|
+
flex: 1;
|
|
1329
|
+
height: calc(0.0625rem * var(--c-scale));
|
|
1330
|
+
border-top: var(--divider-size) var(--divider-border-style, solid) var(--divider-color);
|
|
1331
|
+
margin-inline-end: var(--c-spacing-xs);
|
|
1332
|
+
}
|
|
1333
|
+
|
|
1334
|
+
.m_6e972f40::after {
|
|
1335
|
+
content: '';
|
|
1336
|
+
flex: 1;
|
|
1337
|
+
height: calc(0.0625rem * var(--c-scale));
|
|
1338
|
+
border-top: var(--divider-size) var(--divider-border-style, solid) var(--divider-color);
|
|
1339
|
+
margin-inline-start: var(--c-spacing-xs);
|
|
1340
|
+
}
|
|
1341
|
+
|
|
1279
1342
|
.m_6438951e {
|
|
1280
1343
|
--empty-state-indicator-size-xs: calc(2rem * var(--c-scale));
|
|
1281
1344
|
--empty-state-indicator-size-sm: calc(2.5rem * var(--c-scale));
|
package/styles.layer.css
CHANGED
|
@@ -1276,6 +1276,69 @@ fieldset:disabled .c-active:active {
|
|
|
1276
1276
|
margin-inline: auto;
|
|
1277
1277
|
}
|
|
1278
1278
|
|
|
1279
|
+
.m_35209716 {
|
|
1280
|
+
--divider-size-xs: calc(0.0625rem * var(--c-scale));
|
|
1281
|
+
--divider-size-sm: calc(0.125rem * var(--c-scale));
|
|
1282
|
+
--divider-size-md: calc(0.1875rem * var(--c-scale));
|
|
1283
|
+
--divider-size-lg: calc(0.25rem * var(--c-scale));
|
|
1284
|
+
--divider-size-xl: calc(0.3125rem * var(--c-scale));
|
|
1285
|
+
--divider-size: var(--divider-size-xs);
|
|
1286
|
+
}
|
|
1287
|
+
|
|
1288
|
+
:where([data-c-color-scheme='light']) .m_35209716 {
|
|
1289
|
+
--divider-color: var(--c-color-gray-3);
|
|
1290
|
+
}
|
|
1291
|
+
|
|
1292
|
+
:where([data-c-color-scheme='dark']) .m_35209716 {
|
|
1293
|
+
--divider-color: var(--c-color-dark-4);
|
|
1294
|
+
}
|
|
1295
|
+
|
|
1296
|
+
.m_35209716:where([data-orientation='horizontal']) {
|
|
1297
|
+
border-top: var(--divider-size) var(--divider-border-style, solid) var(--divider-color);
|
|
1298
|
+
}
|
|
1299
|
+
|
|
1300
|
+
.m_35209716:where([data-orientation='vertical']) {
|
|
1301
|
+
border-inline-start: var(--divider-size) var(--divider-border-style, solid) var(--divider-color);
|
|
1302
|
+
height: auto;
|
|
1303
|
+
align-self: stretch;
|
|
1304
|
+
}
|
|
1305
|
+
|
|
1306
|
+
.m_35209716:where([data-with-label]) {
|
|
1307
|
+
border: 0;
|
|
1308
|
+
}
|
|
1309
|
+
|
|
1310
|
+
.m_6e972f40 {
|
|
1311
|
+
display: flex;
|
|
1312
|
+
align-items: center;
|
|
1313
|
+
font-size: var(--c-font-size-xs);
|
|
1314
|
+
color: var(--c-color-dimmed);
|
|
1315
|
+
white-space: nowrap;
|
|
1316
|
+
}
|
|
1317
|
+
|
|
1318
|
+
.m_6e972f40:where([data-position='left'])::before {
|
|
1319
|
+
display: none;
|
|
1320
|
+
}
|
|
1321
|
+
|
|
1322
|
+
.m_6e972f40:where([data-position='right'])::after {
|
|
1323
|
+
display: none;
|
|
1324
|
+
}
|
|
1325
|
+
|
|
1326
|
+
.m_6e972f40::before {
|
|
1327
|
+
content: '';
|
|
1328
|
+
flex: 1;
|
|
1329
|
+
height: calc(0.0625rem * var(--c-scale));
|
|
1330
|
+
border-top: var(--divider-size) var(--divider-border-style, solid) var(--divider-color);
|
|
1331
|
+
margin-inline-end: var(--c-spacing-xs);
|
|
1332
|
+
}
|
|
1333
|
+
|
|
1334
|
+
.m_6e972f40::after {
|
|
1335
|
+
content: '';
|
|
1336
|
+
flex: 1;
|
|
1337
|
+
height: calc(0.0625rem * var(--c-scale));
|
|
1338
|
+
border-top: var(--divider-size) var(--divider-border-style, solid) var(--divider-color);
|
|
1339
|
+
margin-inline-start: var(--c-spacing-xs);
|
|
1340
|
+
}
|
|
1341
|
+
|
|
1279
1342
|
.m_6438951e {
|
|
1280
1343
|
--empty-state-indicator-size-xs: calc(2rem * var(--c-scale));
|
|
1281
1344
|
--empty-state-indicator-size-sm: calc(2.5rem * var(--c-scale));
|