@bridger-kr/react 0.1.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 +62 -0
- package/dist/components/core/Badge.cjs +36 -0
- package/dist/components/core/Badge.cjs.map +1 -0
- package/dist/components/core/Badge.d.cts +18 -0
- package/dist/components/core/Badge.d.ts +18 -0
- package/dist/components/core/Badge.mjs +34 -0
- package/dist/components/core/Badge.mjs.map +1 -0
- package/dist/components/core/Button.cjs +57 -0
- package/dist/components/core/Button.cjs.map +1 -0
- package/dist/components/core/Button.d.cts +26 -0
- package/dist/components/core/Button.d.ts +26 -0
- package/dist/components/core/Button.mjs +55 -0
- package/dist/components/core/Button.mjs.map +1 -0
- package/dist/components/core/Card.cjs +57 -0
- package/dist/components/core/Card.cjs.map +1 -0
- package/dist/components/core/Card.d.cts +27 -0
- package/dist/components/core/Card.d.ts +27 -0
- package/dist/components/core/Card.mjs +54 -0
- package/dist/components/core/Card.mjs.map +1 -0
- package/dist/components/core/FilterChip.cjs +54 -0
- package/dist/components/core/FilterChip.cjs.map +1 -0
- package/dist/components/core/FilterChip.d.cts +23 -0
- package/dist/components/core/FilterChip.d.ts +23 -0
- package/dist/components/core/FilterChip.mjs +52 -0
- package/dist/components/core/FilterChip.mjs.map +1 -0
- package/dist/components/core/Input.cjs +67 -0
- package/dist/components/core/Input.cjs.map +1 -0
- package/dist/components/core/Input.d.cts +20 -0
- package/dist/components/core/Input.d.ts +20 -0
- package/dist/components/core/Input.mjs +65 -0
- package/dist/components/core/Input.mjs.map +1 -0
- package/dist/components/core/StatusPill.cjs +57 -0
- package/dist/components/core/StatusPill.cjs.map +1 -0
- package/dist/components/core/StatusPill.d.cts +19 -0
- package/dist/components/core/StatusPill.d.ts +19 -0
- package/dist/components/core/StatusPill.mjs +55 -0
- package/dist/components/core/StatusPill.mjs.map +1 -0
- package/dist/components/core/Surface.cjs +52 -0
- package/dist/components/core/Surface.cjs.map +1 -0
- package/dist/components/core/Surface.d.cts +24 -0
- package/dist/components/core/Surface.d.ts +24 -0
- package/dist/components/core/Surface.mjs +47 -0
- package/dist/components/core/Surface.mjs.map +1 -0
- package/dist/components/core/Tabs.cjs +64 -0
- package/dist/components/core/Tabs.cjs.map +1 -0
- package/dist/components/core/Tabs.d.cts +24 -0
- package/dist/components/core/Tabs.d.ts +24 -0
- package/dist/components/core/Tabs.mjs +62 -0
- package/dist/components/core/Tabs.mjs.map +1 -0
- package/dist/components/data/Avatar.cjs +40 -0
- package/dist/components/data/Avatar.cjs.map +1 -0
- package/dist/components/data/Avatar.d.cts +24 -0
- package/dist/components/data/Avatar.d.ts +24 -0
- package/dist/components/data/Avatar.mjs +38 -0
- package/dist/components/data/Avatar.mjs.map +1 -0
- package/dist/components/data/CodeBlock.cjs +92 -0
- package/dist/components/data/CodeBlock.cjs.map +1 -0
- package/dist/components/data/CodeBlock.d.cts +20 -0
- package/dist/components/data/CodeBlock.d.ts +20 -0
- package/dist/components/data/CodeBlock.mjs +90 -0
- package/dist/components/data/CodeBlock.mjs.map +1 -0
- package/dist/components/data/KeyValue.cjs +55 -0
- package/dist/components/data/KeyValue.cjs.map +1 -0
- package/dist/components/data/KeyValue.d.cts +24 -0
- package/dist/components/data/KeyValue.d.ts +24 -0
- package/dist/components/data/KeyValue.mjs +53 -0
- package/dist/components/data/KeyValue.mjs.map +1 -0
- package/dist/components/data/LogRow.cjs +55 -0
- package/dist/components/data/LogRow.cjs.map +1 -0
- package/dist/components/data/LogRow.d.cts +23 -0
- package/dist/components/data/LogRow.d.ts +23 -0
- package/dist/components/data/LogRow.mjs +53 -0
- package/dist/components/data/LogRow.mjs.map +1 -0
- package/dist/components/data/Pagination.cjs +44 -0
- package/dist/components/data/Pagination.cjs.map +1 -0
- package/dist/components/data/Pagination.d.cts +13 -0
- package/dist/components/data/Pagination.d.ts +13 -0
- package/dist/components/data/Pagination.mjs +42 -0
- package/dist/components/data/Pagination.mjs.map +1 -0
- package/dist/components/data/StatTile.cjs +20 -0
- package/dist/components/data/StatTile.cjs.map +1 -0
- package/dist/components/data/StatTile.d.cts +19 -0
- package/dist/components/data/StatTile.d.ts +19 -0
- package/dist/components/data/StatTile.mjs +18 -0
- package/dist/components/data/StatTile.mjs.map +1 -0
- package/dist/components/data/Table.cjs +45 -0
- package/dist/components/data/Table.cjs.map +1 -0
- package/dist/components/data/Table.d.cts +27 -0
- package/dist/components/data/Table.d.ts +27 -0
- package/dist/components/data/Table.mjs +43 -0
- package/dist/components/data/Table.mjs.map +1 -0
- package/dist/components/data/UsageMeter.cjs +28 -0
- package/dist/components/data/UsageMeter.cjs.map +1 -0
- package/dist/components/data/UsageMeter.d.cts +19 -0
- package/dist/components/data/UsageMeter.d.ts +19 -0
- package/dist/components/data/UsageMeter.mjs +26 -0
- package/dist/components/data/UsageMeter.mjs.map +1 -0
- package/dist/components/feedback/Alert.cjs +78 -0
- package/dist/components/feedback/Alert.cjs.map +1 -0
- package/dist/components/feedback/Alert.d.cts +29 -0
- package/dist/components/feedback/Alert.d.ts +29 -0
- package/dist/components/feedback/Alert.mjs +74 -0
- package/dist/components/feedback/Alert.mjs.map +1 -0
- package/dist/components/feedback/Dialog.cjs +62 -0
- package/dist/components/feedback/Dialog.cjs.map +1 -0
- package/dist/components/feedback/Dialog.d.cts +17 -0
- package/dist/components/feedback/Dialog.d.ts +17 -0
- package/dist/components/feedback/Dialog.mjs +60 -0
- package/dist/components/feedback/Dialog.mjs.map +1 -0
- package/dist/components/feedback/Drawer.cjs +58 -0
- package/dist/components/feedback/Drawer.cjs.map +1 -0
- package/dist/components/feedback/Drawer.d.cts +22 -0
- package/dist/components/feedback/Drawer.d.ts +22 -0
- package/dist/components/feedback/Drawer.mjs +56 -0
- package/dist/components/feedback/Drawer.mjs.map +1 -0
- package/dist/components/feedback/EmptyState.cjs +36 -0
- package/dist/components/feedback/EmptyState.cjs.map +1 -0
- package/dist/components/feedback/EmptyState.d.cts +14 -0
- package/dist/components/feedback/EmptyState.d.ts +14 -0
- package/dist/components/feedback/EmptyState.mjs +34 -0
- package/dist/components/feedback/EmptyState.mjs.map +1 -0
- package/dist/components/feedback/Skeleton.cjs +19 -0
- package/dist/components/feedback/Skeleton.cjs.map +1 -0
- package/dist/components/feedback/Skeleton.d.cts +12 -0
- package/dist/components/feedback/Skeleton.d.ts +12 -0
- package/dist/components/feedback/Skeleton.mjs +17 -0
- package/dist/components/feedback/Skeleton.mjs.map +1 -0
- package/dist/components/feedback/Spinner.cjs +17 -0
- package/dist/components/feedback/Spinner.cjs.map +1 -0
- package/dist/components/feedback/Spinner.d.cts +12 -0
- package/dist/components/feedback/Spinner.d.ts +12 -0
- package/dist/components/feedback/Spinner.mjs +15 -0
- package/dist/components/feedback/Spinner.mjs.map +1 -0
- package/dist/components/feedback/Toast.cjs +32 -0
- package/dist/components/feedback/Toast.cjs.map +1 -0
- package/dist/components/feedback/Toast.d.cts +20 -0
- package/dist/components/feedback/Toast.d.ts +20 -0
- package/dist/components/feedback/Toast.mjs +30 -0
- package/dist/components/feedback/Toast.mjs.map +1 -0
- package/dist/components/feedback/Tooltip.cjs +51 -0
- package/dist/components/feedback/Tooltip.cjs.map +1 -0
- package/dist/components/feedback/Tooltip.d.cts +11 -0
- package/dist/components/feedback/Tooltip.d.ts +11 -0
- package/dist/components/feedback/Tooltip.mjs +49 -0
- package/dist/components/feedback/Tooltip.mjs.map +1 -0
- package/dist/components/forms/Checkbox.cjs +74 -0
- package/dist/components/forms/Checkbox.cjs.map +1 -0
- package/dist/components/forms/Checkbox.d.cts +16 -0
- package/dist/components/forms/Checkbox.d.ts +16 -0
- package/dist/components/forms/Checkbox.mjs +72 -0
- package/dist/components/forms/Checkbox.mjs.map +1 -0
- package/dist/components/forms/Combobox.cjs +217 -0
- package/dist/components/forms/Combobox.cjs.map +1 -0
- package/dist/components/forms/Combobox.d.cts +27 -0
- package/dist/components/forms/Combobox.d.ts +27 -0
- package/dist/components/forms/Combobox.mjs +215 -0
- package/dist/components/forms/Combobox.mjs.map +1 -0
- package/dist/components/forms/FileUpload.cjs +187 -0
- package/dist/components/forms/FileUpload.cjs.map +1 -0
- package/dist/components/forms/FileUpload.d.cts +26 -0
- package/dist/components/forms/FileUpload.d.ts +26 -0
- package/dist/components/forms/FileUpload.mjs +185 -0
- package/dist/components/forms/FileUpload.mjs.map +1 -0
- package/dist/components/forms/RadioGroup.cjs +73 -0
- package/dist/components/forms/RadioGroup.cjs.map +1 -0
- package/dist/components/forms/RadioGroup.d.cts +21 -0
- package/dist/components/forms/RadioGroup.d.ts +21 -0
- package/dist/components/forms/RadioGroup.mjs +71 -0
- package/dist/components/forms/RadioGroup.mjs.map +1 -0
- package/dist/components/forms/SegmentedControl.cjs +67 -0
- package/dist/components/forms/SegmentedControl.cjs.map +1 -0
- package/dist/components/forms/SegmentedControl.d.cts +19 -0
- package/dist/components/forms/SegmentedControl.d.ts +19 -0
- package/dist/components/forms/SegmentedControl.mjs +65 -0
- package/dist/components/forms/SegmentedControl.mjs.map +1 -0
- package/dist/components/forms/Select.cjs +67 -0
- package/dist/components/forms/Select.cjs.map +1 -0
- package/dist/components/forms/Select.d.cts +23 -0
- package/dist/components/forms/Select.d.ts +23 -0
- package/dist/components/forms/Select.mjs +65 -0
- package/dist/components/forms/Select.mjs.map +1 -0
- package/dist/components/forms/Slider.cjs +129 -0
- package/dist/components/forms/Slider.cjs.map +1 -0
- package/dist/components/forms/Slider.d.cts +24 -0
- package/dist/components/forms/Slider.d.ts +24 -0
- package/dist/components/forms/Slider.mjs +127 -0
- package/dist/components/forms/Slider.mjs.map +1 -0
- package/dist/components/forms/Switch.cjs +101 -0
- package/dist/components/forms/Switch.cjs.map +1 -0
- package/dist/components/forms/Switch.d.cts +24 -0
- package/dist/components/forms/Switch.d.ts +24 -0
- package/dist/components/forms/Switch.mjs +98 -0
- package/dist/components/forms/Switch.mjs.map +1 -0
- package/dist/components/forms/Textarea.cjs +35 -0
- package/dist/components/forms/Textarea.cjs.map +1 -0
- package/dist/components/forms/Textarea.d.cts +15 -0
- package/dist/components/forms/Textarea.d.ts +15 -0
- package/dist/components/forms/Textarea.mjs +33 -0
- package/dist/components/forms/Textarea.mjs.map +1 -0
- package/dist/components/navigation/Breadcrumb.cjs +27 -0
- package/dist/components/navigation/Breadcrumb.cjs.map +1 -0
- package/dist/components/navigation/Breadcrumb.d.cts +15 -0
- package/dist/components/navigation/Breadcrumb.d.ts +15 -0
- package/dist/components/navigation/Breadcrumb.mjs +25 -0
- package/dist/components/navigation/Breadcrumb.mjs.map +1 -0
- package/dist/components/navigation/CommandPalette.cjs +136 -0
- package/dist/components/navigation/CommandPalette.cjs.map +1 -0
- package/dist/components/navigation/CommandPalette.d.cts +26 -0
- package/dist/components/navigation/CommandPalette.d.ts +26 -0
- package/dist/components/navigation/CommandPalette.mjs +134 -0
- package/dist/components/navigation/CommandPalette.mjs.map +1 -0
- package/dist/components/navigation/Menu.cjs +104 -0
- package/dist/components/navigation/Menu.cjs.map +1 -0
- package/dist/components/navigation/Menu.d.cts +20 -0
- package/dist/components/navigation/Menu.d.ts +20 -0
- package/dist/components/navigation/Menu.mjs +102 -0
- package/dist/components/navigation/Menu.mjs.map +1 -0
- package/dist/components/navigation/Sidebar.cjs +60 -0
- package/dist/components/navigation/Sidebar.cjs.map +1 -0
- package/dist/components/navigation/Sidebar.d.cts +30 -0
- package/dist/components/navigation/Sidebar.d.ts +30 -0
- package/dist/components/navigation/Sidebar.mjs +58 -0
- package/dist/components/navigation/Sidebar.mjs.map +1 -0
- package/dist/components/navigation/Stepper.cjs +55 -0
- package/dist/components/navigation/Stepper.cjs.map +1 -0
- package/dist/components/navigation/Stepper.d.cts +21 -0
- package/dist/components/navigation/Stepper.d.ts +21 -0
- package/dist/components/navigation/Stepper.mjs +53 -0
- package/dist/components/navigation/Stepper.mjs.map +1 -0
- package/dist/components/product/BrandLogo.cjs +159 -0
- package/dist/components/product/BrandLogo.cjs.map +1 -0
- package/dist/components/product/BrandLogo.d.cts +28 -0
- package/dist/components/product/BrandLogo.d.ts +28 -0
- package/dist/components/product/BrandLogo.mjs +156 -0
- package/dist/components/product/BrandLogo.mjs.map +1 -0
- package/dist/components/product/ProductActionPill.cjs +57 -0
- package/dist/components/product/ProductActionPill.cjs.map +1 -0
- package/dist/components/product/ProductActionPill.d.cts +31 -0
- package/dist/components/product/ProductActionPill.d.ts +31 -0
- package/dist/components/product/ProductActionPill.mjs +52 -0
- package/dist/components/product/ProductActionPill.mjs.map +1 -0
- package/dist/components/product/ProductCinematic.cjs +69 -0
- package/dist/components/product/ProductCinematic.cjs.map +1 -0
- package/dist/components/product/ProductCinematic.d.cts +33 -0
- package/dist/components/product/ProductCinematic.d.ts +33 -0
- package/dist/components/product/ProductCinematic.mjs +63 -0
- package/dist/components/product/ProductCinematic.mjs.map +1 -0
- package/dist/components/product/ProductPageHeader.cjs +35 -0
- package/dist/components/product/ProductPageHeader.cjs.map +1 -0
- package/dist/components/product/ProductPageHeader.d.cts +13 -0
- package/dist/components/product/ProductPageHeader.d.ts +13 -0
- package/dist/components/product/ProductPageHeader.mjs +33 -0
- package/dist/components/product/ProductPageHeader.mjs.map +1 -0
- package/dist/components/product/SectionCard.cjs +72 -0
- package/dist/components/product/SectionCard.cjs.map +1 -0
- package/dist/components/product/SectionCard.d.cts +20 -0
- package/dist/components/product/SectionCard.d.ts +20 -0
- package/dist/components/product/SectionCard.mjs +70 -0
- package/dist/components/product/SectionCard.mjs.map +1 -0
- package/dist/components/product/ToolCard.cjs +70 -0
- package/dist/components/product/ToolCard.cjs.map +1 -0
- package/dist/components/product/ToolCard.d.cts +22 -0
- package/dist/components/product/ToolCard.d.ts +22 -0
- package/dist/components/product/ToolCard.mjs +68 -0
- package/dist/components/product/ToolCard.mjs.map +1 -0
- package/dist/index.cjs +2593 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +49 -0
- package/dist/index.d.ts +49 -0
- package/dist/index.mjs +2532 -0
- package/dist/index.mjs.map +1 -0
- package/dist/styles.css +463 -0
- package/package.json +50 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var react = require('react');
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
|
|
6
|
+
// src/components/product/BrandLogo.tsx
|
|
7
|
+
var BRAND_LOGO_LANGUAGE = {
|
|
8
|
+
Korean: "ko",
|
|
9
|
+
English: "en"
|
|
10
|
+
};
|
|
11
|
+
var BRAND_LOGO_SIZE = {
|
|
12
|
+
sm: 20,
|
|
13
|
+
md: 28,
|
|
14
|
+
lg: 56,
|
|
15
|
+
xl: 76
|
|
16
|
+
};
|
|
17
|
+
var BRAND_WORDMARK = "Bridger";
|
|
18
|
+
var BRAND_LOGO_LABEL = {
|
|
19
|
+
[BRAND_LOGO_LANGUAGE.Korean]: "\uBE0C\uB9BF\uC800",
|
|
20
|
+
[BRAND_LOGO_LANGUAGE.English]: BRAND_WORDMARK
|
|
21
|
+
};
|
|
22
|
+
function playMark(setArmed) {
|
|
23
|
+
const scheduleFrame = typeof requestAnimationFrame === "function" ? requestAnimationFrame : (callback) => setTimeout(callback, 0);
|
|
24
|
+
setArmed(false);
|
|
25
|
+
scheduleFrame(
|
|
26
|
+
() => scheduleFrame(() => setArmed(true))
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
var BrandLogo = react.forwardRef(function BrandLogo2({
|
|
30
|
+
size = "md",
|
|
31
|
+
autoplay = false,
|
|
32
|
+
loop = false,
|
|
33
|
+
lang = BRAND_LOGO_LANGUAGE.Korean,
|
|
34
|
+
style
|
|
35
|
+
}, ref) {
|
|
36
|
+
const fontSize = typeof size === "number" ? size : BRAND_LOGO_SIZE[size] ?? BRAND_LOGO_SIZE.md;
|
|
37
|
+
const [armed, setArmed] = react.useState(false);
|
|
38
|
+
react.useImperativeHandle(
|
|
39
|
+
ref,
|
|
40
|
+
() => ({
|
|
41
|
+
play() {
|
|
42
|
+
playMark(setArmed);
|
|
43
|
+
}
|
|
44
|
+
}),
|
|
45
|
+
[]
|
|
46
|
+
);
|
|
47
|
+
react.useEffect(() => {
|
|
48
|
+
if (!autoplay) return;
|
|
49
|
+
const timeout = setTimeout(() => playMark(setArmed), 200);
|
|
50
|
+
return () => clearTimeout(timeout);
|
|
51
|
+
}, [autoplay]);
|
|
52
|
+
react.useEffect(() => {
|
|
53
|
+
if (!loop) return;
|
|
54
|
+
let alive = true;
|
|
55
|
+
const interval = setInterval(() => {
|
|
56
|
+
if (!alive) return;
|
|
57
|
+
playMark((value) => {
|
|
58
|
+
if (alive) setArmed(value);
|
|
59
|
+
});
|
|
60
|
+
}, 7e3);
|
|
61
|
+
return () => {
|
|
62
|
+
alive = false;
|
|
63
|
+
clearInterval(interval);
|
|
64
|
+
};
|
|
65
|
+
}, [loop]);
|
|
66
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
67
|
+
"span",
|
|
68
|
+
{
|
|
69
|
+
"aria-label": BRAND_LOGO_LABEL[lang],
|
|
70
|
+
style: {
|
|
71
|
+
display: "inline-flex",
|
|
72
|
+
alignItems: "center",
|
|
73
|
+
gap: "0.38em",
|
|
74
|
+
fontFamily: "var(--dt-font-sans)",
|
|
75
|
+
fontWeight: 760,
|
|
76
|
+
fontSize,
|
|
77
|
+
letterSpacing: 0,
|
|
78
|
+
lineHeight: 1,
|
|
79
|
+
color: "var(--dt-ink-strong)",
|
|
80
|
+
userSelect: "none",
|
|
81
|
+
...style
|
|
82
|
+
},
|
|
83
|
+
children: [
|
|
84
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
85
|
+
"svg",
|
|
86
|
+
{
|
|
87
|
+
width: "2.306em",
|
|
88
|
+
height: "1.24em",
|
|
89
|
+
viewBox: "0 0 44 24",
|
|
90
|
+
"aria-hidden": "true",
|
|
91
|
+
focusable: "false",
|
|
92
|
+
style: { flex: "0 0 auto", overflow: "visible" },
|
|
93
|
+
children: [
|
|
94
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
95
|
+
"path",
|
|
96
|
+
{
|
|
97
|
+
d: "M4 8H18C24 8 25 4 31 4H40",
|
|
98
|
+
fill: "none",
|
|
99
|
+
stroke: "color-mix(in srgb, var(--dt-ink-strong) 24%, transparent)",
|
|
100
|
+
strokeLinecap: "round",
|
|
101
|
+
strokeLinejoin: "round",
|
|
102
|
+
strokeWidth: "3"
|
|
103
|
+
}
|
|
104
|
+
),
|
|
105
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
106
|
+
"path",
|
|
107
|
+
{
|
|
108
|
+
d: "M4 16H18C24 16 25 20 31 20H40",
|
|
109
|
+
fill: "none",
|
|
110
|
+
stroke: "color-mix(in srgb, var(--dt-ink-strong) 24%, transparent)",
|
|
111
|
+
strokeLinecap: "round",
|
|
112
|
+
strokeLinejoin: "round",
|
|
113
|
+
strokeWidth: "3"
|
|
114
|
+
}
|
|
115
|
+
),
|
|
116
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
117
|
+
"path",
|
|
118
|
+
{
|
|
119
|
+
className: "dt-brand-logo-line",
|
|
120
|
+
d: "M4 8H18C24 8 25 4 31 4H40",
|
|
121
|
+
fill: "none",
|
|
122
|
+
stroke: "var(--dt-accent)",
|
|
123
|
+
strokeDasharray: "42",
|
|
124
|
+
strokeDashoffset: armed ? 0 : 0,
|
|
125
|
+
strokeLinecap: "round",
|
|
126
|
+
strokeLinejoin: "round",
|
|
127
|
+
strokeWidth: "3.2",
|
|
128
|
+
style: armed ? { animation: "dt-brand-logo-line-draw 420ms cubic-bezier(.2, .7, .2, 1) both" } : void 0
|
|
129
|
+
}
|
|
130
|
+
),
|
|
131
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
132
|
+
"path",
|
|
133
|
+
{
|
|
134
|
+
className: "dt-brand-logo-line",
|
|
135
|
+
d: "M4 16H18C24 16 25 20 31 20H40",
|
|
136
|
+
fill: "none",
|
|
137
|
+
stroke: "var(--dt-accent)",
|
|
138
|
+
strokeDasharray: "42",
|
|
139
|
+
strokeDashoffset: armed ? 0 : 0,
|
|
140
|
+
strokeLinecap: "round",
|
|
141
|
+
strokeLinejoin: "round",
|
|
142
|
+
strokeWidth: "3.2",
|
|
143
|
+
style: armed ? { animation: "dt-brand-logo-line-draw 420ms cubic-bezier(.2, .7, .2, 1) both" } : void 0
|
|
144
|
+
}
|
|
145
|
+
)
|
|
146
|
+
]
|
|
147
|
+
}
|
|
148
|
+
),
|
|
149
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: BRAND_WORDMARK }),
|
|
150
|
+
/* @__PURE__ */ jsxRuntime.jsx("style", { children: "@keyframes dt-brand-logo-line-draw{from{opacity:.45;stroke-dashoffset:42}to{opacity:1;stroke-dashoffset:0}}@media (prefers-reduced-motion: reduce){.dt-brand-logo-line{animation:none!important}}" })
|
|
151
|
+
]
|
|
152
|
+
}
|
|
153
|
+
);
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
exports.BRAND_LOGO_LANGUAGE = BRAND_LOGO_LANGUAGE;
|
|
157
|
+
exports.BrandLogo = BrandLogo;
|
|
158
|
+
//# sourceMappingURL=BrandLogo.cjs.map
|
|
159
|
+
//# sourceMappingURL=BrandLogo.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/product/BrandLogo.tsx"],"names":["forwardRef","BrandLogo","useState","useImperativeHandle","useEffect","jsxs","jsx"],"mappings":";;;;;;AAUO,IAAM,mBAAA,GAAsB;AAAA,EACjC,MAAA,EAAQ,IAAA;AAAA,EACR,OAAA,EAAS;AACX;AAEA,IAAM,eAAA,GAAkB;AAAA,EACtB,EAAA,EAAI,EAAA;AAAA,EACJ,EAAA,EAAI,EAAA;AAAA,EACJ,EAAA,EAAI,EAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,cAAA,GAAiB,SAAA;AAEvB,IAAM,gBAAA,GAAsD;AAAA,EAC1D,CAAC,mBAAA,CAAoB,MAAM,GAAG,oBAAA;AAAA,EAC9B,CAAC,mBAAA,CAAoB,OAAO,GAAG;AACjC,CAAA;AAiBA,SAAS,SAAS,QAAA,EAA6C;AAC7D,EAAA,MAAM,aAAA,GAAgB,OAAO,qBAAA,KAA0B,UAAA,GACnD,wBACA,CAAC,QAAA,KAAmC,UAAA,CAAW,QAAA,EAAU,CAAC,CAAA;AAC9D,EAAA,QAAA,CAAS,KAAK,CAAA;AACd,EAAA,aAAA;AAAA,IAAc,MACZ,aAAA,CAAc,MAAM,QAAA,CAAS,IAAI,CAAC;AAAA,GACpC;AACF;AAEO,IAAM,SAAA,GAAYA,gBAAA,CAA4C,SAASC,UAAAA,CAC5E;AAAA,EACE,IAAA,GAAO,IAAA;AAAA,EACP,QAAA,GAAW,KAAA;AAAA,EACX,IAAA,GAAO,KAAA;AAAA,EACP,OAAO,mBAAA,CAAoB,MAAA;AAAA,EAC3B;AACF,CAAA,EACA,GAAA,EACA;AACA,EAAA,MAAM,QAAA,GAAW,OAAO,IAAA,KAAS,QAAA,GAAW,OAAQ,eAAA,CAAgB,IAAI,KAAK,eAAA,CAAgB,EAAA;AAC7F,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIC,eAAS,KAAK,CAAA;AAExC,EAAAC,yBAAA;AAAA,IACE,GAAA;AAAA,IACA,OAAO;AAAA,MACL,IAAA,GAAO;AACL,QAAA,QAAA,CAAS,QAAQ,CAAA;AAAA,MACnB;AAAA,KACF,CAAA;AAAA,IACA;AAAC,GACH;AAEA,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,QAAA,EAAU;AACf,IAAA,MAAM,UAAU,UAAA,CAAW,MAAM,QAAA,CAAS,QAAQ,GAAG,GAAG,CAAA;AACxD,IAAA,OAAO,MAAM,aAAa,OAAO,CAAA;AAAA,EACnC,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,EAAAA,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,IAAA,EAAM;AACX,IAAA,IAAI,KAAA,GAAQ,IAAA;AACZ,IAAA,MAAM,QAAA,GAAW,YAAY,MAAM;AACjC,MAAA,IAAI,CAAC,KAAA,EAAO;AACZ,MAAA,QAAA,CAAS,CAAC,KAAA,KAAU;AAClB,QAAA,IAAI,KAAA,WAAgB,KAAK,CAAA;AAAA,MAC3B,CAAC,CAAA;AAAA,IACH,GAAG,GAAI,CAAA;AAEP,IAAA,OAAO,MAAM;AACX,MAAA,KAAA,GAAQ,KAAA;AACR,MAAA,aAAA,CAAc,QAAQ,CAAA;AAAA,IACxB,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,uBACEC,eAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,iBAAiB,IAAI,CAAA;AAAA,MACjC,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,aAAA;AAAA,QACT,UAAA,EAAY,QAAA;AAAA,QACZ,GAAA,EAAK,QAAA;AAAA,QACL,UAAA,EAAY,qBAAA;AAAA,QACZ,UAAA,EAAY,GAAA;AAAA,QACZ,QAAA;AAAA,QACA,aAAA,EAAe,CAAA;AAAA,QACf,UAAA,EAAY,CAAA;AAAA,QACZ,KAAA,EAAO,sBAAA;AAAA,QACP,UAAA,EAAY,MAAA;AAAA,QACZ,GAAG;AAAA,OACL;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAA,eAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,SAAA;AAAA,YACN,MAAA,EAAO,QAAA;AAAA,YACP,OAAA,EAAQ,WAAA;AAAA,YACR,aAAA,EAAY,MAAA;AAAA,YACZ,SAAA,EAAU,OAAA;AAAA,YACV,KAAA,EAAO,EAAE,IAAA,EAAM,UAAA,EAAY,UAAU,SAAA,EAAU;AAAA,YAE/C,QAAA,EAAA;AAAA,8BAAAC,cAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,CAAA,EAAE,2BAAA;AAAA,kBACF,IAAA,EAAK,MAAA;AAAA,kBACL,MAAA,EAAO,2DAAA;AAAA,kBACP,aAAA,EAAc,OAAA;AAAA,kBACd,cAAA,EAAe,OAAA;AAAA,kBACf,WAAA,EAAY;AAAA;AAAA,eACd;AAAA,8BACAA,cAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,CAAA,EAAE,+BAAA;AAAA,kBACF,IAAA,EAAK,MAAA;AAAA,kBACL,MAAA,EAAO,2DAAA;AAAA,kBACP,aAAA,EAAc,OAAA;AAAA,kBACd,cAAA,EAAe,OAAA;AAAA,kBACf,WAAA,EAAY;AAAA;AAAA,eACd;AAAA,8BACAA,cAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAU,oBAAA;AAAA,kBACV,CAAA,EAAE,2BAAA;AAAA,kBACF,IAAA,EAAK,MAAA;AAAA,kBACL,MAAA,EAAO,kBAAA;AAAA,kBACP,eAAA,EAAgB,IAAA;AAAA,kBAChB,gBAAA,EAAkB,QAAQ,CAAA,GAAI,CAAA;AAAA,kBAC9B,aAAA,EAAc,OAAA;AAAA,kBACd,cAAA,EAAe,OAAA;AAAA,kBACf,WAAA,EAAY,KAAA;AAAA,kBACZ,KAAA,EAAO,KAAA,GAAQ,EAAE,SAAA,EAAW,kEAAiE,GAAI;AAAA;AAAA,eACnG;AAAA,8BACAA,cAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAU,oBAAA;AAAA,kBACV,CAAA,EAAE,+BAAA;AAAA,kBACF,IAAA,EAAK,MAAA;AAAA,kBACL,MAAA,EAAO,kBAAA;AAAA,kBACP,eAAA,EAAgB,IAAA;AAAA,kBAChB,gBAAA,EAAkB,QAAQ,CAAA,GAAI,CAAA;AAAA,kBAC9B,aAAA,EAAc,OAAA;AAAA,kBACd,cAAA,EAAe,OAAA;AAAA,kBACf,WAAA,EAAY,KAAA;AAAA,kBACZ,KAAA,EAAO,KAAA,GAAQ,EAAE,SAAA,EAAW,kEAAiE,GAAI;AAAA;AAAA;AACnG;AAAA;AAAA,SACF;AAAA,wBACAA,cAAA,CAAC,UAAM,QAAA,EAAA,cAAA,EAAe,CAAA;AAAA,wBACtBA,cAAA,CAAC,WACE,QAAA,EAAA,mMAAA,EACH;AAAA;AAAA;AAAA,GACF;AAEJ,CAAC","file":"BrandLogo.cjs","sourcesContent":["import {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useState,\n type CSSProperties,\n type Dispatch,\n type SetStateAction,\n} from 'react';\n\nexport const BRAND_LOGO_LANGUAGE = {\n Korean: 'ko',\n English: 'en',\n} as const;\n\nconst BRAND_LOGO_SIZE = {\n sm: 20,\n md: 28,\n lg: 56,\n xl: 76,\n} as const;\n\nconst BRAND_WORDMARK = 'Bridger';\n\nconst BRAND_LOGO_LABEL: Record<BrandLogoLanguage, string> = {\n [BRAND_LOGO_LANGUAGE.Korean]: '브릿저',\n [BRAND_LOGO_LANGUAGE.English]: BRAND_WORDMARK,\n};\n\nexport type BrandLogoLanguage = (typeof BRAND_LOGO_LANGUAGE)[keyof typeof BRAND_LOGO_LANGUAGE];\nexport type BrandLogoSize = keyof typeof BRAND_LOGO_SIZE;\n\nexport interface BrandLogoHandle {\n readonly play: () => void;\n}\n\nexport interface BrandLogoProps {\n size?: BrandLogoSize | number;\n autoplay?: boolean;\n loop?: boolean;\n lang?: BrandLogoLanguage;\n style?: CSSProperties;\n}\n\nfunction playMark(setArmed: Dispatch<SetStateAction<boolean>>) {\n const scheduleFrame = typeof requestAnimationFrame === 'function'\n ? requestAnimationFrame\n : (callback: FrameRequestCallback) => setTimeout(callback, 0);\n setArmed(false);\n scheduleFrame(() =>\n scheduleFrame(() => setArmed(true)),\n );\n}\n\nexport const BrandLogo = forwardRef<BrandLogoHandle, BrandLogoProps>(function BrandLogo(\n {\n size = 'md',\n autoplay = false,\n loop = false,\n lang = BRAND_LOGO_LANGUAGE.Korean,\n style,\n },\n ref,\n) {\n const fontSize = typeof size === 'number' ? size : (BRAND_LOGO_SIZE[size] ?? BRAND_LOGO_SIZE.md);\n const [armed, setArmed] = useState(false);\n\n useImperativeHandle(\n ref,\n () => ({\n play() {\n playMark(setArmed);\n },\n }),\n [],\n );\n\n useEffect(() => {\n if (!autoplay) return;\n const timeout = setTimeout(() => playMark(setArmed), 200);\n return () => clearTimeout(timeout);\n }, [autoplay]);\n\n useEffect(() => {\n if (!loop) return;\n let alive = true;\n const interval = setInterval(() => {\n if (!alive) return;\n playMark((value) => {\n if (alive) setArmed(value);\n });\n }, 7000);\n\n return () => {\n alive = false;\n clearInterval(interval);\n };\n }, [loop]);\n\n return (\n <span\n aria-label={BRAND_LOGO_LABEL[lang]}\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.38em',\n fontFamily: 'var(--dt-font-sans)',\n fontWeight: 760,\n fontSize,\n letterSpacing: 0,\n lineHeight: 1,\n color: 'var(--dt-ink-strong)',\n userSelect: 'none',\n ...style,\n }}\n >\n <svg\n width=\"2.306em\"\n height=\"1.24em\"\n viewBox=\"0 0 44 24\"\n aria-hidden=\"true\"\n focusable=\"false\"\n style={{ flex: '0 0 auto', overflow: 'visible' }}\n >\n <path\n d=\"M4 8H18C24 8 25 4 31 4H40\"\n fill=\"none\"\n stroke=\"color-mix(in srgb, var(--dt-ink-strong) 24%, transparent)\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"3\"\n />\n <path\n d=\"M4 16H18C24 16 25 20 31 20H40\"\n fill=\"none\"\n stroke=\"color-mix(in srgb, var(--dt-ink-strong) 24%, transparent)\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"3\"\n />\n <path\n className=\"dt-brand-logo-line\"\n d=\"M4 8H18C24 8 25 4 31 4H40\"\n fill=\"none\"\n stroke=\"var(--dt-accent)\"\n strokeDasharray=\"42\"\n strokeDashoffset={armed ? 0 : 0}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"3.2\"\n style={armed ? { animation: 'dt-brand-logo-line-draw 420ms cubic-bezier(.2, .7, .2, 1) both' } : undefined}\n />\n <path\n className=\"dt-brand-logo-line\"\n d=\"M4 16H18C24 16 25 20 31 20H40\"\n fill=\"none\"\n stroke=\"var(--dt-accent)\"\n strokeDasharray=\"42\"\n strokeDashoffset={armed ? 0 : 0}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"3.2\"\n style={armed ? { animation: 'dt-brand-logo-line-draw 420ms cubic-bezier(.2, .7, .2, 1) both' } : undefined}\n />\n </svg>\n <span>{BRAND_WORDMARK}</span>\n <style>\n {'@keyframes dt-brand-logo-line-draw{from{opacity:.45;stroke-dashoffset:42}to{opacity:1;stroke-dashoffset:0}}@media (prefers-reduced-motion: reduce){.dt-brand-logo-line{animation:none!important}}'}\n </style>\n </span>\n );\n});\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { CSSProperties } from 'react';
|
|
3
|
+
|
|
4
|
+
declare const BRAND_LOGO_LANGUAGE: {
|
|
5
|
+
readonly Korean: "ko";
|
|
6
|
+
readonly English: "en";
|
|
7
|
+
};
|
|
8
|
+
declare const BRAND_LOGO_SIZE: {
|
|
9
|
+
readonly sm: 20;
|
|
10
|
+
readonly md: 28;
|
|
11
|
+
readonly lg: 56;
|
|
12
|
+
readonly xl: 76;
|
|
13
|
+
};
|
|
14
|
+
type BrandLogoLanguage = (typeof BRAND_LOGO_LANGUAGE)[keyof typeof BRAND_LOGO_LANGUAGE];
|
|
15
|
+
type BrandLogoSize = keyof typeof BRAND_LOGO_SIZE;
|
|
16
|
+
interface BrandLogoHandle {
|
|
17
|
+
readonly play: () => void;
|
|
18
|
+
}
|
|
19
|
+
interface BrandLogoProps {
|
|
20
|
+
size?: BrandLogoSize | number;
|
|
21
|
+
autoplay?: boolean;
|
|
22
|
+
loop?: boolean;
|
|
23
|
+
lang?: BrandLogoLanguage;
|
|
24
|
+
style?: CSSProperties;
|
|
25
|
+
}
|
|
26
|
+
declare const BrandLogo: react.ForwardRefExoticComponent<BrandLogoProps & react.RefAttributes<BrandLogoHandle>>;
|
|
27
|
+
|
|
28
|
+
export { BRAND_LOGO_LANGUAGE, BrandLogo, type BrandLogoHandle, type BrandLogoLanguage, type BrandLogoProps, type BrandLogoSize };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { CSSProperties } from 'react';
|
|
3
|
+
|
|
4
|
+
declare const BRAND_LOGO_LANGUAGE: {
|
|
5
|
+
readonly Korean: "ko";
|
|
6
|
+
readonly English: "en";
|
|
7
|
+
};
|
|
8
|
+
declare const BRAND_LOGO_SIZE: {
|
|
9
|
+
readonly sm: 20;
|
|
10
|
+
readonly md: 28;
|
|
11
|
+
readonly lg: 56;
|
|
12
|
+
readonly xl: 76;
|
|
13
|
+
};
|
|
14
|
+
type BrandLogoLanguage = (typeof BRAND_LOGO_LANGUAGE)[keyof typeof BRAND_LOGO_LANGUAGE];
|
|
15
|
+
type BrandLogoSize = keyof typeof BRAND_LOGO_SIZE;
|
|
16
|
+
interface BrandLogoHandle {
|
|
17
|
+
readonly play: () => void;
|
|
18
|
+
}
|
|
19
|
+
interface BrandLogoProps {
|
|
20
|
+
size?: BrandLogoSize | number;
|
|
21
|
+
autoplay?: boolean;
|
|
22
|
+
loop?: boolean;
|
|
23
|
+
lang?: BrandLogoLanguage;
|
|
24
|
+
style?: CSSProperties;
|
|
25
|
+
}
|
|
26
|
+
declare const BrandLogo: react.ForwardRefExoticComponent<BrandLogoProps & react.RefAttributes<BrandLogoHandle>>;
|
|
27
|
+
|
|
28
|
+
export { BRAND_LOGO_LANGUAGE, BrandLogo, type BrandLogoHandle, type BrandLogoLanguage, type BrandLogoProps, type BrandLogoSize };
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { forwardRef, useState, useImperativeHandle, useEffect } from 'react';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
|
|
4
|
+
// src/components/product/BrandLogo.tsx
|
|
5
|
+
var BRAND_LOGO_LANGUAGE = {
|
|
6
|
+
Korean: "ko",
|
|
7
|
+
English: "en"
|
|
8
|
+
};
|
|
9
|
+
var BRAND_LOGO_SIZE = {
|
|
10
|
+
sm: 20,
|
|
11
|
+
md: 28,
|
|
12
|
+
lg: 56,
|
|
13
|
+
xl: 76
|
|
14
|
+
};
|
|
15
|
+
var BRAND_WORDMARK = "Bridger";
|
|
16
|
+
var BRAND_LOGO_LABEL = {
|
|
17
|
+
[BRAND_LOGO_LANGUAGE.Korean]: "\uBE0C\uB9BF\uC800",
|
|
18
|
+
[BRAND_LOGO_LANGUAGE.English]: BRAND_WORDMARK
|
|
19
|
+
};
|
|
20
|
+
function playMark(setArmed) {
|
|
21
|
+
const scheduleFrame = typeof requestAnimationFrame === "function" ? requestAnimationFrame : (callback) => setTimeout(callback, 0);
|
|
22
|
+
setArmed(false);
|
|
23
|
+
scheduleFrame(
|
|
24
|
+
() => scheduleFrame(() => setArmed(true))
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
var BrandLogo = forwardRef(function BrandLogo2({
|
|
28
|
+
size = "md",
|
|
29
|
+
autoplay = false,
|
|
30
|
+
loop = false,
|
|
31
|
+
lang = BRAND_LOGO_LANGUAGE.Korean,
|
|
32
|
+
style
|
|
33
|
+
}, ref) {
|
|
34
|
+
const fontSize = typeof size === "number" ? size : BRAND_LOGO_SIZE[size] ?? BRAND_LOGO_SIZE.md;
|
|
35
|
+
const [armed, setArmed] = useState(false);
|
|
36
|
+
useImperativeHandle(
|
|
37
|
+
ref,
|
|
38
|
+
() => ({
|
|
39
|
+
play() {
|
|
40
|
+
playMark(setArmed);
|
|
41
|
+
}
|
|
42
|
+
}),
|
|
43
|
+
[]
|
|
44
|
+
);
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
if (!autoplay) return;
|
|
47
|
+
const timeout = setTimeout(() => playMark(setArmed), 200);
|
|
48
|
+
return () => clearTimeout(timeout);
|
|
49
|
+
}, [autoplay]);
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
if (!loop) return;
|
|
52
|
+
let alive = true;
|
|
53
|
+
const interval = setInterval(() => {
|
|
54
|
+
if (!alive) return;
|
|
55
|
+
playMark((value) => {
|
|
56
|
+
if (alive) setArmed(value);
|
|
57
|
+
});
|
|
58
|
+
}, 7e3);
|
|
59
|
+
return () => {
|
|
60
|
+
alive = false;
|
|
61
|
+
clearInterval(interval);
|
|
62
|
+
};
|
|
63
|
+
}, [loop]);
|
|
64
|
+
return /* @__PURE__ */ jsxs(
|
|
65
|
+
"span",
|
|
66
|
+
{
|
|
67
|
+
"aria-label": BRAND_LOGO_LABEL[lang],
|
|
68
|
+
style: {
|
|
69
|
+
display: "inline-flex",
|
|
70
|
+
alignItems: "center",
|
|
71
|
+
gap: "0.38em",
|
|
72
|
+
fontFamily: "var(--dt-font-sans)",
|
|
73
|
+
fontWeight: 760,
|
|
74
|
+
fontSize,
|
|
75
|
+
letterSpacing: 0,
|
|
76
|
+
lineHeight: 1,
|
|
77
|
+
color: "var(--dt-ink-strong)",
|
|
78
|
+
userSelect: "none",
|
|
79
|
+
...style
|
|
80
|
+
},
|
|
81
|
+
children: [
|
|
82
|
+
/* @__PURE__ */ jsxs(
|
|
83
|
+
"svg",
|
|
84
|
+
{
|
|
85
|
+
width: "2.306em",
|
|
86
|
+
height: "1.24em",
|
|
87
|
+
viewBox: "0 0 44 24",
|
|
88
|
+
"aria-hidden": "true",
|
|
89
|
+
focusable: "false",
|
|
90
|
+
style: { flex: "0 0 auto", overflow: "visible" },
|
|
91
|
+
children: [
|
|
92
|
+
/* @__PURE__ */ jsx(
|
|
93
|
+
"path",
|
|
94
|
+
{
|
|
95
|
+
d: "M4 8H18C24 8 25 4 31 4H40",
|
|
96
|
+
fill: "none",
|
|
97
|
+
stroke: "color-mix(in srgb, var(--dt-ink-strong) 24%, transparent)",
|
|
98
|
+
strokeLinecap: "round",
|
|
99
|
+
strokeLinejoin: "round",
|
|
100
|
+
strokeWidth: "3"
|
|
101
|
+
}
|
|
102
|
+
),
|
|
103
|
+
/* @__PURE__ */ jsx(
|
|
104
|
+
"path",
|
|
105
|
+
{
|
|
106
|
+
d: "M4 16H18C24 16 25 20 31 20H40",
|
|
107
|
+
fill: "none",
|
|
108
|
+
stroke: "color-mix(in srgb, var(--dt-ink-strong) 24%, transparent)",
|
|
109
|
+
strokeLinecap: "round",
|
|
110
|
+
strokeLinejoin: "round",
|
|
111
|
+
strokeWidth: "3"
|
|
112
|
+
}
|
|
113
|
+
),
|
|
114
|
+
/* @__PURE__ */ jsx(
|
|
115
|
+
"path",
|
|
116
|
+
{
|
|
117
|
+
className: "dt-brand-logo-line",
|
|
118
|
+
d: "M4 8H18C24 8 25 4 31 4H40",
|
|
119
|
+
fill: "none",
|
|
120
|
+
stroke: "var(--dt-accent)",
|
|
121
|
+
strokeDasharray: "42",
|
|
122
|
+
strokeDashoffset: armed ? 0 : 0,
|
|
123
|
+
strokeLinecap: "round",
|
|
124
|
+
strokeLinejoin: "round",
|
|
125
|
+
strokeWidth: "3.2",
|
|
126
|
+
style: armed ? { animation: "dt-brand-logo-line-draw 420ms cubic-bezier(.2, .7, .2, 1) both" } : void 0
|
|
127
|
+
}
|
|
128
|
+
),
|
|
129
|
+
/* @__PURE__ */ jsx(
|
|
130
|
+
"path",
|
|
131
|
+
{
|
|
132
|
+
className: "dt-brand-logo-line",
|
|
133
|
+
d: "M4 16H18C24 16 25 20 31 20H40",
|
|
134
|
+
fill: "none",
|
|
135
|
+
stroke: "var(--dt-accent)",
|
|
136
|
+
strokeDasharray: "42",
|
|
137
|
+
strokeDashoffset: armed ? 0 : 0,
|
|
138
|
+
strokeLinecap: "round",
|
|
139
|
+
strokeLinejoin: "round",
|
|
140
|
+
strokeWidth: "3.2",
|
|
141
|
+
style: armed ? { animation: "dt-brand-logo-line-draw 420ms cubic-bezier(.2, .7, .2, 1) both" } : void 0
|
|
142
|
+
}
|
|
143
|
+
)
|
|
144
|
+
]
|
|
145
|
+
}
|
|
146
|
+
),
|
|
147
|
+
/* @__PURE__ */ jsx("span", { children: BRAND_WORDMARK }),
|
|
148
|
+
/* @__PURE__ */ jsx("style", { children: "@keyframes dt-brand-logo-line-draw{from{opacity:.45;stroke-dashoffset:42}to{opacity:1;stroke-dashoffset:0}}@media (prefers-reduced-motion: reduce){.dt-brand-logo-line{animation:none!important}}" })
|
|
149
|
+
]
|
|
150
|
+
}
|
|
151
|
+
);
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
export { BRAND_LOGO_LANGUAGE, BrandLogo };
|
|
155
|
+
//# sourceMappingURL=BrandLogo.mjs.map
|
|
156
|
+
//# sourceMappingURL=BrandLogo.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/product/BrandLogo.tsx"],"names":["BrandLogo"],"mappings":"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","file":"BrandLogo.mjs","sourcesContent":["import {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useState,\n type CSSProperties,\n type Dispatch,\n type SetStateAction,\n} from 'react';\n\nexport const BRAND_LOGO_LANGUAGE = {\n Korean: 'ko',\n English: 'en',\n} as const;\n\nconst BRAND_LOGO_SIZE = {\n sm: 20,\n md: 28,\n lg: 56,\n xl: 76,\n} as const;\n\nconst BRAND_WORDMARK = 'Bridger';\n\nconst BRAND_LOGO_LABEL: Record<BrandLogoLanguage, string> = {\n [BRAND_LOGO_LANGUAGE.Korean]: '브릿저',\n [BRAND_LOGO_LANGUAGE.English]: BRAND_WORDMARK,\n};\n\nexport type BrandLogoLanguage = (typeof BRAND_LOGO_LANGUAGE)[keyof typeof BRAND_LOGO_LANGUAGE];\nexport type BrandLogoSize = keyof typeof BRAND_LOGO_SIZE;\n\nexport interface BrandLogoHandle {\n readonly play: () => void;\n}\n\nexport interface BrandLogoProps {\n size?: BrandLogoSize | number;\n autoplay?: boolean;\n loop?: boolean;\n lang?: BrandLogoLanguage;\n style?: CSSProperties;\n}\n\nfunction playMark(setArmed: Dispatch<SetStateAction<boolean>>) {\n const scheduleFrame = typeof requestAnimationFrame === 'function'\n ? requestAnimationFrame\n : (callback: FrameRequestCallback) => setTimeout(callback, 0);\n setArmed(false);\n scheduleFrame(() =>\n scheduleFrame(() => setArmed(true)),\n );\n}\n\nexport const BrandLogo = forwardRef<BrandLogoHandle, BrandLogoProps>(function BrandLogo(\n {\n size = 'md',\n autoplay = false,\n loop = false,\n lang = BRAND_LOGO_LANGUAGE.Korean,\n style,\n },\n ref,\n) {\n const fontSize = typeof size === 'number' ? size : (BRAND_LOGO_SIZE[size] ?? BRAND_LOGO_SIZE.md);\n const [armed, setArmed] = useState(false);\n\n useImperativeHandle(\n ref,\n () => ({\n play() {\n playMark(setArmed);\n },\n }),\n [],\n );\n\n useEffect(() => {\n if (!autoplay) return;\n const timeout = setTimeout(() => playMark(setArmed), 200);\n return () => clearTimeout(timeout);\n }, [autoplay]);\n\n useEffect(() => {\n if (!loop) return;\n let alive = true;\n const interval = setInterval(() => {\n if (!alive) return;\n playMark((value) => {\n if (alive) setArmed(value);\n });\n }, 7000);\n\n return () => {\n alive = false;\n clearInterval(interval);\n };\n }, [loop]);\n\n return (\n <span\n aria-label={BRAND_LOGO_LABEL[lang]}\n style={{\n display: 'inline-flex',\n alignItems: 'center',\n gap: '0.38em',\n fontFamily: 'var(--dt-font-sans)',\n fontWeight: 760,\n fontSize,\n letterSpacing: 0,\n lineHeight: 1,\n color: 'var(--dt-ink-strong)',\n userSelect: 'none',\n ...style,\n }}\n >\n <svg\n width=\"2.306em\"\n height=\"1.24em\"\n viewBox=\"0 0 44 24\"\n aria-hidden=\"true\"\n focusable=\"false\"\n style={{ flex: '0 0 auto', overflow: 'visible' }}\n >\n <path\n d=\"M4 8H18C24 8 25 4 31 4H40\"\n fill=\"none\"\n stroke=\"color-mix(in srgb, var(--dt-ink-strong) 24%, transparent)\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"3\"\n />\n <path\n d=\"M4 16H18C24 16 25 20 31 20H40\"\n fill=\"none\"\n stroke=\"color-mix(in srgb, var(--dt-ink-strong) 24%, transparent)\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"3\"\n />\n <path\n className=\"dt-brand-logo-line\"\n d=\"M4 8H18C24 8 25 4 31 4H40\"\n fill=\"none\"\n stroke=\"var(--dt-accent)\"\n strokeDasharray=\"42\"\n strokeDashoffset={armed ? 0 : 0}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"3.2\"\n style={armed ? { animation: 'dt-brand-logo-line-draw 420ms cubic-bezier(.2, .7, .2, 1) both' } : undefined}\n />\n <path\n className=\"dt-brand-logo-line\"\n d=\"M4 16H18C24 16 25 20 31 20H40\"\n fill=\"none\"\n stroke=\"var(--dt-accent)\"\n strokeDasharray=\"42\"\n strokeDashoffset={armed ? 0 : 0}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"3.2\"\n style={armed ? { animation: 'dt-brand-logo-line-draw 420ms cubic-bezier(.2, .7, .2, 1) both' } : undefined}\n />\n </svg>\n <span>{BRAND_WORDMARK}</span>\n <style>\n {'@keyframes dt-brand-logo-line-draw{from{opacity:.45;stroke-dashoffset:42}to{opacity:1;stroke-dashoffset:0}}@media (prefers-reduced-motion: reduce){.dt-brand-logo-line{animation:none!important}}'}\n </style>\n </span>\n );\n});\n"]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
|
|
5
|
+
// src/lib/cx.ts
|
|
6
|
+
function cx(...classes) {
|
|
7
|
+
return classes.filter(Boolean).join(" ");
|
|
8
|
+
}
|
|
9
|
+
var PRODUCT_ACTION_PILL_VARIANT = {
|
|
10
|
+
Default: "default",
|
|
11
|
+
Accent: "accent",
|
|
12
|
+
Outline: "outline"
|
|
13
|
+
};
|
|
14
|
+
var PRODUCT_ACTION_PILL_SIZE = {
|
|
15
|
+
Compact: "compact",
|
|
16
|
+
Figma: "figma"
|
|
17
|
+
};
|
|
18
|
+
var VARIANT_CLASS = {
|
|
19
|
+
[PRODUCT_ACTION_PILL_VARIANT.Default]: "dt-product-action-pill-default",
|
|
20
|
+
[PRODUCT_ACTION_PILL_VARIANT.Accent]: "dt-product-action-pill-accent",
|
|
21
|
+
[PRODUCT_ACTION_PILL_VARIANT.Outline]: "dt-product-action-pill-outline"
|
|
22
|
+
};
|
|
23
|
+
var SIZE_CLASS = {
|
|
24
|
+
[PRODUCT_ACTION_PILL_SIZE.Compact]: "dt-product-action-pill-compact",
|
|
25
|
+
[PRODUCT_ACTION_PILL_SIZE.Figma]: "dt-product-action-pill-figma"
|
|
26
|
+
};
|
|
27
|
+
function productActionPillClassName({
|
|
28
|
+
variant = PRODUCT_ACTION_PILL_VARIANT.Default,
|
|
29
|
+
size = PRODUCT_ACTION_PILL_SIZE.Compact,
|
|
30
|
+
className
|
|
31
|
+
} = {}) {
|
|
32
|
+
return cx("dt-product-action-pill", VARIANT_CLASS[variant], SIZE_CLASS[size], className);
|
|
33
|
+
}
|
|
34
|
+
function ProductActionPill({
|
|
35
|
+
as,
|
|
36
|
+
variant = PRODUCT_ACTION_PILL_VARIANT.Default,
|
|
37
|
+
size = PRODUCT_ACTION_PILL_SIZE.Compact,
|
|
38
|
+
leadingIcon,
|
|
39
|
+
trailingIcon,
|
|
40
|
+
children,
|
|
41
|
+
className,
|
|
42
|
+
...rest
|
|
43
|
+
}) {
|
|
44
|
+
const Component = as ?? "a";
|
|
45
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(Component, { className: productActionPillClassName({ variant, size, className }), ...rest, children: [
|
|
46
|
+
leadingIcon ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "dt-product-action-pill-icon", children: leadingIcon }) : null,
|
|
47
|
+
children ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "dt-product-action-pill-label", children }) : null,
|
|
48
|
+
trailingIcon ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "dt-product-action-pill-icon", children: trailingIcon }) : null
|
|
49
|
+
] });
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
exports.PRODUCT_ACTION_PILL_SIZE = PRODUCT_ACTION_PILL_SIZE;
|
|
53
|
+
exports.PRODUCT_ACTION_PILL_VARIANT = PRODUCT_ACTION_PILL_VARIANT;
|
|
54
|
+
exports.ProductActionPill = ProductActionPill;
|
|
55
|
+
exports.productActionPillClassName = productActionPillClassName;
|
|
56
|
+
//# sourceMappingURL=ProductActionPill.cjs.map
|
|
57
|
+
//# sourceMappingURL=ProductActionPill.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/cx.ts","../../../src/components/product/ProductActionPill.tsx"],"names":["jsxs","jsx"],"mappings":";;;;;AAAO,SAAS,MAAM,OAAA,EAA2D;AAC/E,EAAA,OAAO,OAAA,CAAQ,MAAA,CAAO,OAAO,CAAA,CAAE,KAAK,GAAG,CAAA;AACzC;ACCO,IAAM,2BAAA,GAA8B;AAAA,EACzC,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,QAAA;AAAA,EACR,OAAA,EAAS;AACX;AAEO,IAAM,wBAAA,GAA2B;AAAA,EACtC,OAAA,EAAS,SAAA;AAAA,EACT,KAAA,EAAO;AACT;AAKA,IAAM,aAAA,GAA0D;AAAA,EAC9D,CAAC,2BAAA,CAA4B,OAAO,GAAG,gCAAA;AAAA,EACvC,CAAC,2BAAA,CAA4B,MAAM,GAAG,+BAAA;AAAA,EACtC,CAAC,2BAAA,CAA4B,OAAO,GAAG;AACzC,CAAA;AAEA,IAAM,UAAA,GAAoD;AAAA,EACxD,CAAC,wBAAA,CAAyB,OAAO,GAAG,gCAAA;AAAA,EACpC,CAAC,wBAAA,CAAyB,KAAK,GAAG;AACpC,CAAA;AAYO,SAAS,0BAAA,CAA2B;AAAA,EACzC,UAAU,2BAAA,CAA4B,OAAA;AAAA,EACtC,OAAO,wBAAA,CAAyB,OAAA;AAAA,EAChC;AACF,CAAA,GAII,EAAC,EAAG;AACN,EAAA,OAAO,EAAA,CAAG,0BAA0B,aAAA,CAAc,OAAO,GAAG,UAAA,CAAW,IAAI,GAAG,SAAS,CAAA;AACzF;AAEO,SAAS,iBAAA,CAA+C;AAAA,EAC7D,EAAA;AAAA,EACA,UAAU,2BAAA,CAA4B,OAAA;AAAA,EACtC,OAAO,wBAAA,CAAyB,OAAA;AAAA,EAChC,WAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA8B;AAC5B,EAAA,MAAM,YAAY,EAAA,IAAM,GAAA;AAExB,EAAA,uBACEA,eAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAW,0BAAA,CAA2B,EAAE,OAAA,EAAS,IAAA,EAAM,SAAA,EAAW,CAAA,EAAI,GAAG,IAAA,EACjF,QAAA,EAAA;AAAA,IAAA,WAAA,mBAAcC,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,6BAAA,EAA+B,uBAAY,CAAA,GAAU,IAAA;AAAA,IACnF,2BAAWA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8BAAA,EAAgC,UAAS,CAAA,GAAU,IAAA;AAAA,IAC9E,+BAAeA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,6BAAA,EAA+B,wBAAa,CAAA,GAAU;AAAA,GAAA,EACxF,CAAA;AAEJ","file":"ProductActionPill.cjs","sourcesContent":["export function cx(...classes: Array<string | false | null | undefined>): string {\n return classes.filter(Boolean).join(' ');\n}\n","import type { ComponentPropsWithoutRef, ElementType, ReactNode } from 'react';\nimport { cx } from '../../lib/cx';\n\nexport const PRODUCT_ACTION_PILL_VARIANT = {\n Default: 'default',\n Accent: 'accent',\n Outline: 'outline',\n} as const;\n\nexport const PRODUCT_ACTION_PILL_SIZE = {\n Compact: 'compact',\n Figma: 'figma',\n} as const;\n\nexport type ProductActionPillVariant = (typeof PRODUCT_ACTION_PILL_VARIANT)[keyof typeof PRODUCT_ACTION_PILL_VARIANT];\nexport type ProductActionPillSize = (typeof PRODUCT_ACTION_PILL_SIZE)[keyof typeof PRODUCT_ACTION_PILL_SIZE];\n\nconst VARIANT_CLASS: Record<ProductActionPillVariant, string> = {\n [PRODUCT_ACTION_PILL_VARIANT.Default]: 'dt-product-action-pill-default',\n [PRODUCT_ACTION_PILL_VARIANT.Accent]: 'dt-product-action-pill-accent',\n [PRODUCT_ACTION_PILL_VARIANT.Outline]: 'dt-product-action-pill-outline',\n};\n\nconst SIZE_CLASS: Record<ProductActionPillSize, string> = {\n [PRODUCT_ACTION_PILL_SIZE.Compact]: 'dt-product-action-pill-compact',\n [PRODUCT_ACTION_PILL_SIZE.Figma]: 'dt-product-action-pill-figma',\n};\n\nexport type ProductActionPillProps<T extends ElementType = 'a'> = {\n as?: T;\n variant?: ProductActionPillVariant;\n size?: ProductActionPillSize;\n leadingIcon?: ReactNode;\n trailingIcon?: ReactNode;\n children?: ReactNode;\n className?: string;\n} & Omit<ComponentPropsWithoutRef<T>, 'as' | 'children' | 'className'>;\n\nexport function productActionPillClassName({\n variant = PRODUCT_ACTION_PILL_VARIANT.Default,\n size = PRODUCT_ACTION_PILL_SIZE.Compact,\n className,\n}: {\n variant?: ProductActionPillVariant;\n size?: ProductActionPillSize;\n className?: string;\n} = {}) {\n return cx('dt-product-action-pill', VARIANT_CLASS[variant], SIZE_CLASS[size], className);\n}\n\nexport function ProductActionPill<T extends ElementType = 'a'>({\n as,\n variant = PRODUCT_ACTION_PILL_VARIANT.Default,\n size = PRODUCT_ACTION_PILL_SIZE.Compact,\n leadingIcon,\n trailingIcon,\n children,\n className,\n ...rest\n}: ProductActionPillProps<T>) {\n const Component = as ?? 'a';\n\n return (\n <Component className={productActionPillClassName({ variant, size, className })} {...rest}>\n {leadingIcon ? <span className=\"dt-product-action-pill-icon\">{leadingIcon}</span> : null}\n {children ? <span className=\"dt-product-action-pill-label\">{children}</span> : null}\n {trailingIcon ? <span className=\"dt-product-action-pill-icon\">{trailingIcon}</span> : null}\n </Component>\n );\n}\n"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { ElementType, ReactNode, ComponentPropsWithoutRef } from 'react';
|
|
3
|
+
|
|
4
|
+
declare const PRODUCT_ACTION_PILL_VARIANT: {
|
|
5
|
+
readonly Default: "default";
|
|
6
|
+
readonly Accent: "accent";
|
|
7
|
+
readonly Outline: "outline";
|
|
8
|
+
};
|
|
9
|
+
declare const PRODUCT_ACTION_PILL_SIZE: {
|
|
10
|
+
readonly Compact: "compact";
|
|
11
|
+
readonly Figma: "figma";
|
|
12
|
+
};
|
|
13
|
+
type ProductActionPillVariant = (typeof PRODUCT_ACTION_PILL_VARIANT)[keyof typeof PRODUCT_ACTION_PILL_VARIANT];
|
|
14
|
+
type ProductActionPillSize = (typeof PRODUCT_ACTION_PILL_SIZE)[keyof typeof PRODUCT_ACTION_PILL_SIZE];
|
|
15
|
+
type ProductActionPillProps<T extends ElementType = 'a'> = {
|
|
16
|
+
as?: T;
|
|
17
|
+
variant?: ProductActionPillVariant;
|
|
18
|
+
size?: ProductActionPillSize;
|
|
19
|
+
leadingIcon?: ReactNode;
|
|
20
|
+
trailingIcon?: ReactNode;
|
|
21
|
+
children?: ReactNode;
|
|
22
|
+
className?: string;
|
|
23
|
+
} & Omit<ComponentPropsWithoutRef<T>, 'as' | 'children' | 'className'>;
|
|
24
|
+
declare function productActionPillClassName({ variant, size, className, }?: {
|
|
25
|
+
variant?: ProductActionPillVariant;
|
|
26
|
+
size?: ProductActionPillSize;
|
|
27
|
+
className?: string;
|
|
28
|
+
}): string;
|
|
29
|
+
declare function ProductActionPill<T extends ElementType = 'a'>({ as, variant, size, leadingIcon, trailingIcon, children, className, ...rest }: ProductActionPillProps<T>): react.JSX.Element;
|
|
30
|
+
|
|
31
|
+
export { PRODUCT_ACTION_PILL_SIZE, PRODUCT_ACTION_PILL_VARIANT, ProductActionPill, type ProductActionPillProps, type ProductActionPillSize, type ProductActionPillVariant, productActionPillClassName };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { ElementType, ReactNode, ComponentPropsWithoutRef } from 'react';
|
|
3
|
+
|
|
4
|
+
declare const PRODUCT_ACTION_PILL_VARIANT: {
|
|
5
|
+
readonly Default: "default";
|
|
6
|
+
readonly Accent: "accent";
|
|
7
|
+
readonly Outline: "outline";
|
|
8
|
+
};
|
|
9
|
+
declare const PRODUCT_ACTION_PILL_SIZE: {
|
|
10
|
+
readonly Compact: "compact";
|
|
11
|
+
readonly Figma: "figma";
|
|
12
|
+
};
|
|
13
|
+
type ProductActionPillVariant = (typeof PRODUCT_ACTION_PILL_VARIANT)[keyof typeof PRODUCT_ACTION_PILL_VARIANT];
|
|
14
|
+
type ProductActionPillSize = (typeof PRODUCT_ACTION_PILL_SIZE)[keyof typeof PRODUCT_ACTION_PILL_SIZE];
|
|
15
|
+
type ProductActionPillProps<T extends ElementType = 'a'> = {
|
|
16
|
+
as?: T;
|
|
17
|
+
variant?: ProductActionPillVariant;
|
|
18
|
+
size?: ProductActionPillSize;
|
|
19
|
+
leadingIcon?: ReactNode;
|
|
20
|
+
trailingIcon?: ReactNode;
|
|
21
|
+
children?: ReactNode;
|
|
22
|
+
className?: string;
|
|
23
|
+
} & Omit<ComponentPropsWithoutRef<T>, 'as' | 'children' | 'className'>;
|
|
24
|
+
declare function productActionPillClassName({ variant, size, className, }?: {
|
|
25
|
+
variant?: ProductActionPillVariant;
|
|
26
|
+
size?: ProductActionPillSize;
|
|
27
|
+
className?: string;
|
|
28
|
+
}): string;
|
|
29
|
+
declare function ProductActionPill<T extends ElementType = 'a'>({ as, variant, size, leadingIcon, trailingIcon, children, className, ...rest }: ProductActionPillProps<T>): react.JSX.Element;
|
|
30
|
+
|
|
31
|
+
export { PRODUCT_ACTION_PILL_SIZE, PRODUCT_ACTION_PILL_VARIANT, ProductActionPill, type ProductActionPillProps, type ProductActionPillSize, type ProductActionPillVariant, productActionPillClassName };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
// src/lib/cx.ts
|
|
4
|
+
function cx(...classes) {
|
|
5
|
+
return classes.filter(Boolean).join(" ");
|
|
6
|
+
}
|
|
7
|
+
var PRODUCT_ACTION_PILL_VARIANT = {
|
|
8
|
+
Default: "default",
|
|
9
|
+
Accent: "accent",
|
|
10
|
+
Outline: "outline"
|
|
11
|
+
};
|
|
12
|
+
var PRODUCT_ACTION_PILL_SIZE = {
|
|
13
|
+
Compact: "compact",
|
|
14
|
+
Figma: "figma"
|
|
15
|
+
};
|
|
16
|
+
var VARIANT_CLASS = {
|
|
17
|
+
[PRODUCT_ACTION_PILL_VARIANT.Default]: "dt-product-action-pill-default",
|
|
18
|
+
[PRODUCT_ACTION_PILL_VARIANT.Accent]: "dt-product-action-pill-accent",
|
|
19
|
+
[PRODUCT_ACTION_PILL_VARIANT.Outline]: "dt-product-action-pill-outline"
|
|
20
|
+
};
|
|
21
|
+
var SIZE_CLASS = {
|
|
22
|
+
[PRODUCT_ACTION_PILL_SIZE.Compact]: "dt-product-action-pill-compact",
|
|
23
|
+
[PRODUCT_ACTION_PILL_SIZE.Figma]: "dt-product-action-pill-figma"
|
|
24
|
+
};
|
|
25
|
+
function productActionPillClassName({
|
|
26
|
+
variant = PRODUCT_ACTION_PILL_VARIANT.Default,
|
|
27
|
+
size = PRODUCT_ACTION_PILL_SIZE.Compact,
|
|
28
|
+
className
|
|
29
|
+
} = {}) {
|
|
30
|
+
return cx("dt-product-action-pill", VARIANT_CLASS[variant], SIZE_CLASS[size], className);
|
|
31
|
+
}
|
|
32
|
+
function ProductActionPill({
|
|
33
|
+
as,
|
|
34
|
+
variant = PRODUCT_ACTION_PILL_VARIANT.Default,
|
|
35
|
+
size = PRODUCT_ACTION_PILL_SIZE.Compact,
|
|
36
|
+
leadingIcon,
|
|
37
|
+
trailingIcon,
|
|
38
|
+
children,
|
|
39
|
+
className,
|
|
40
|
+
...rest
|
|
41
|
+
}) {
|
|
42
|
+
const Component = as ?? "a";
|
|
43
|
+
return /* @__PURE__ */ jsxs(Component, { className: productActionPillClassName({ variant, size, className }), ...rest, children: [
|
|
44
|
+
leadingIcon ? /* @__PURE__ */ jsx("span", { className: "dt-product-action-pill-icon", children: leadingIcon }) : null,
|
|
45
|
+
children ? /* @__PURE__ */ jsx("span", { className: "dt-product-action-pill-label", children }) : null,
|
|
46
|
+
trailingIcon ? /* @__PURE__ */ jsx("span", { className: "dt-product-action-pill-icon", children: trailingIcon }) : null
|
|
47
|
+
] });
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export { PRODUCT_ACTION_PILL_SIZE, PRODUCT_ACTION_PILL_VARIANT, ProductActionPill, productActionPillClassName };
|
|
51
|
+
//# sourceMappingURL=ProductActionPill.mjs.map
|
|
52
|
+
//# sourceMappingURL=ProductActionPill.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/cx.ts","../../../src/components/product/ProductActionPill.tsx"],"names":[],"mappings":";;;AAAO,SAAS,MAAM,OAAA,EAA2D;AAC/E,EAAA,OAAO,OAAA,CAAQ,MAAA,CAAO,OAAO,CAAA,CAAE,KAAK,GAAG,CAAA;AACzC;ACCO,IAAM,2BAAA,GAA8B;AAAA,EACzC,OAAA,EAAS,SAAA;AAAA,EACT,MAAA,EAAQ,QAAA;AAAA,EACR,OAAA,EAAS;AACX;AAEO,IAAM,wBAAA,GAA2B;AAAA,EACtC,OAAA,EAAS,SAAA;AAAA,EACT,KAAA,EAAO;AACT;AAKA,IAAM,aAAA,GAA0D;AAAA,EAC9D,CAAC,2BAAA,CAA4B,OAAO,GAAG,gCAAA;AAAA,EACvC,CAAC,2BAAA,CAA4B,MAAM,GAAG,+BAAA;AAAA,EACtC,CAAC,2BAAA,CAA4B,OAAO,GAAG;AACzC,CAAA;AAEA,IAAM,UAAA,GAAoD;AAAA,EACxD,CAAC,wBAAA,CAAyB,OAAO,GAAG,gCAAA;AAAA,EACpC,CAAC,wBAAA,CAAyB,KAAK,GAAG;AACpC,CAAA;AAYO,SAAS,0BAAA,CAA2B;AAAA,EACzC,UAAU,2BAAA,CAA4B,OAAA;AAAA,EACtC,OAAO,wBAAA,CAAyB,OAAA;AAAA,EAChC;AACF,CAAA,GAII,EAAC,EAAG;AACN,EAAA,OAAO,EAAA,CAAG,0BAA0B,aAAA,CAAc,OAAO,GAAG,UAAA,CAAW,IAAI,GAAG,SAAS,CAAA;AACzF;AAEO,SAAS,iBAAA,CAA+C;AAAA,EAC7D,EAAA;AAAA,EACA,UAAU,2BAAA,CAA4B,OAAA;AAAA,EACtC,OAAO,wBAAA,CAAyB,OAAA;AAAA,EAChC,WAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA8B;AAC5B,EAAA,MAAM,YAAY,EAAA,IAAM,GAAA;AAExB,EAAA,uBACE,IAAA,CAAC,SAAA,EAAA,EAAU,SAAA,EAAW,0BAAA,CAA2B,EAAE,OAAA,EAAS,IAAA,EAAM,SAAA,EAAW,CAAA,EAAI,GAAG,IAAA,EACjF,QAAA,EAAA;AAAA,IAAA,WAAA,mBAAc,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,6BAAA,EAA+B,uBAAY,CAAA,GAAU,IAAA;AAAA,IACnF,2BAAW,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,8BAAA,EAAgC,UAAS,CAAA,GAAU,IAAA;AAAA,IAC9E,+BAAe,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,6BAAA,EAA+B,wBAAa,CAAA,GAAU;AAAA,GAAA,EACxF,CAAA;AAEJ","file":"ProductActionPill.mjs","sourcesContent":["export function cx(...classes: Array<string | false | null | undefined>): string {\n return classes.filter(Boolean).join(' ');\n}\n","import type { ComponentPropsWithoutRef, ElementType, ReactNode } from 'react';\nimport { cx } from '../../lib/cx';\n\nexport const PRODUCT_ACTION_PILL_VARIANT = {\n Default: 'default',\n Accent: 'accent',\n Outline: 'outline',\n} as const;\n\nexport const PRODUCT_ACTION_PILL_SIZE = {\n Compact: 'compact',\n Figma: 'figma',\n} as const;\n\nexport type ProductActionPillVariant = (typeof PRODUCT_ACTION_PILL_VARIANT)[keyof typeof PRODUCT_ACTION_PILL_VARIANT];\nexport type ProductActionPillSize = (typeof PRODUCT_ACTION_PILL_SIZE)[keyof typeof PRODUCT_ACTION_PILL_SIZE];\n\nconst VARIANT_CLASS: Record<ProductActionPillVariant, string> = {\n [PRODUCT_ACTION_PILL_VARIANT.Default]: 'dt-product-action-pill-default',\n [PRODUCT_ACTION_PILL_VARIANT.Accent]: 'dt-product-action-pill-accent',\n [PRODUCT_ACTION_PILL_VARIANT.Outline]: 'dt-product-action-pill-outline',\n};\n\nconst SIZE_CLASS: Record<ProductActionPillSize, string> = {\n [PRODUCT_ACTION_PILL_SIZE.Compact]: 'dt-product-action-pill-compact',\n [PRODUCT_ACTION_PILL_SIZE.Figma]: 'dt-product-action-pill-figma',\n};\n\nexport type ProductActionPillProps<T extends ElementType = 'a'> = {\n as?: T;\n variant?: ProductActionPillVariant;\n size?: ProductActionPillSize;\n leadingIcon?: ReactNode;\n trailingIcon?: ReactNode;\n children?: ReactNode;\n className?: string;\n} & Omit<ComponentPropsWithoutRef<T>, 'as' | 'children' | 'className'>;\n\nexport function productActionPillClassName({\n variant = PRODUCT_ACTION_PILL_VARIANT.Default,\n size = PRODUCT_ACTION_PILL_SIZE.Compact,\n className,\n}: {\n variant?: ProductActionPillVariant;\n size?: ProductActionPillSize;\n className?: string;\n} = {}) {\n return cx('dt-product-action-pill', VARIANT_CLASS[variant], SIZE_CLASS[size], className);\n}\n\nexport function ProductActionPill<T extends ElementType = 'a'>({\n as,\n variant = PRODUCT_ACTION_PILL_VARIANT.Default,\n size = PRODUCT_ACTION_PILL_SIZE.Compact,\n leadingIcon,\n trailingIcon,\n children,\n className,\n ...rest\n}: ProductActionPillProps<T>) {\n const Component = as ?? 'a';\n\n return (\n <Component className={productActionPillClassName({ variant, size, className })} {...rest}>\n {leadingIcon ? <span className=\"dt-product-action-pill-icon\">{leadingIcon}</span> : null}\n {children ? <span className=\"dt-product-action-pill-label\">{children}</span> : null}\n {trailingIcon ? <span className=\"dt-product-action-pill-icon\">{trailingIcon}</span> : null}\n </Component>\n );\n}\n"]}
|