@flamingo-stack/openframe-frontend-core 0.0.296 → 0.0.297
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 +9 -0
- package/dist/{chunk-7RIYT7ZH.js → chunk-2QG57XOJ.js} +1067 -205
- package/dist/chunk-2QG57XOJ.js.map +1 -0
- package/dist/{chunk-WHMATDVP.js → chunk-3JIQVE7T.js} +9 -15
- package/dist/{chunk-WHMATDVP.js.map → chunk-3JIQVE7T.js.map} +1 -1
- package/dist/{chunk-GLLDTKZK.cjs → chunk-4PSQS3SW.cjs} +7 -9
- package/dist/chunk-4PSQS3SW.cjs.map +1 -0
- package/dist/{chunk-OY7OF7E7.js → chunk-4TLE6VLU.js} +30 -24
- package/dist/chunk-4TLE6VLU.js.map +1 -0
- package/dist/{chunk-W6M2FLLT.cjs → chunk-53FUMSZ5.cjs} +40 -46
- package/dist/chunk-53FUMSZ5.cjs.map +1 -0
- package/dist/{chunk-D3LEFMOA.cjs → chunk-54KNMC2R.cjs} +3 -3
- package/dist/{chunk-D3LEFMOA.cjs.map → chunk-54KNMC2R.cjs.map} +1 -1
- package/dist/{chunk-EYEW6PTA.cjs → chunk-6C526VNN.cjs} +358 -118
- package/dist/chunk-6C526VNN.cjs.map +1 -0
- package/dist/{chunk-XREEV72C.cjs → chunk-7OVGB2DQ.cjs} +19 -25
- package/dist/chunk-7OVGB2DQ.cjs.map +1 -0
- package/dist/{chunk-6GCI7JOE.js → chunk-AD6C23QY.js} +8 -7
- package/dist/{chunk-6GCI7JOE.js.map → chunk-AD6C23QY.js.map} +1 -1
- package/dist/chunk-F5OB2YAL.cjs +144 -0
- package/dist/chunk-F5OB2YAL.cjs.map +1 -0
- package/dist/chunk-FBWXMMRB.cjs +2 -0
- package/dist/chunk-FBWXMMRB.cjs.map +1 -0
- package/dist/{chunk-YIGPRLQY.cjs → chunk-FCDQNTDG.cjs} +21 -20
- package/dist/chunk-FCDQNTDG.cjs.map +1 -0
- package/dist/{chunk-IE6OU3WQ.cjs → chunk-FQOTC3UU.cjs} +318 -16
- package/dist/chunk-FQOTC3UU.cjs.map +1 -0
- package/dist/{chunk-QHIXS3W2.cjs → chunk-GUTS7HGA.cjs} +11590 -2105
- package/dist/chunk-GUTS7HGA.cjs.map +1 -0
- package/dist/chunk-GZ4C3XW6.js +2 -0
- package/dist/chunk-GZ4C3XW6.js.map +1 -0
- package/dist/{chunk-5P3B2LZW.js → chunk-IL47XWV5.js} +8 -14
- package/dist/{chunk-5P3B2LZW.js.map → chunk-IL47XWV5.js.map} +1 -1
- package/dist/{chunk-LCNMR277.js → chunk-IZ7JSBFP.js} +1 -1
- package/dist/chunk-IZ7JSBFP.js.map +1 -0
- package/dist/{chunk-EL6QLAWX.js → chunk-JALO4TAZ.js} +357 -55
- package/dist/chunk-JALO4TAZ.js.map +1 -0
- package/dist/{chunk-AQOWFSMB.cjs → chunk-L6PSSIUQ.cjs} +1 -1
- package/dist/chunk-L6PSSIUQ.cjs.map +1 -0
- package/dist/{chunk-MBFWU2EM.js → chunk-L7ULJKG7.js} +6 -10
- package/dist/{chunk-MBFWU2EM.js.map → chunk-L7ULJKG7.js.map} +1 -1
- package/dist/{chunk-K2PFPBMF.js → chunk-PC746XCO.js} +15050 -5565
- package/dist/chunk-PC746XCO.js.map +1 -0
- package/dist/{chunk-3ZXUQQL4.js → chunk-PI4WSYQV.js} +2 -2
- package/dist/{chunk-E4XABBSU.js → chunk-PWQUAVA3.js} +338 -98
- package/dist/chunk-PWQUAVA3.js.map +1 -0
- package/dist/chunk-SA2WPJVO.js +144 -0
- package/dist/chunk-SA2WPJVO.js.map +1 -0
- package/dist/{chunk-X6BV7MB7.cjs → chunk-UNVE2SDJ.cjs} +37 -31
- package/dist/chunk-UNVE2SDJ.cjs.map +1 -0
- package/dist/{chunk-5E2HOSSH.cjs → chunk-WMSTJAZT.cjs} +913 -51
- package/dist/chunk-WMSTJAZT.cjs.map +1 -0
- package/dist/{chunk-ZP4AVIZP.js → chunk-X4DOXQRT.js} +4 -6
- package/dist/{chunk-ZP4AVIZP.js.map → chunk-X4DOXQRT.js.map} +1 -1
- package/dist/{chunk-X647HY3F.cjs → chunk-YBYI62OE.cjs} +33 -37
- package/dist/chunk-YBYI62OE.cjs.map +1 -0
- package/dist/components/case-studies/index.cjs +126 -0
- package/dist/components/case-studies/index.cjs.map +1 -0
- package/dist/components/case-studies/index.d.ts +2 -0
- package/dist/components/case-studies/index.d.ts.map +1 -0
- package/dist/components/case-studies/index.js +126 -0
- package/dist/components/case-studies/index.js.map +1 -0
- package/dist/components/case-studies/share-experience-section.d.ts +48 -0
- package/dist/components/case-studies/share-experience-section.d.ts.map +1 -0
- package/dist/components/chat/index.cjs +8 -18
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.js +75 -85
- package/dist/components/contact/index.cjs +8 -15
- package/dist/components/contact/index.cjs.map +1 -1
- package/dist/components/contact/index.js +7 -14
- package/dist/components/docs/doc-viewer.d.ts +39 -2
- package/dist/components/docs/doc-viewer.d.ts.map +1 -1
- package/dist/components/docs/docs-hub-page.d.ts +46 -0
- package/dist/components/docs/docs-hub-page.d.ts.map +1 -0
- package/dist/components/docs/index.cjs +17 -9
- package/dist/components/docs/index.cjs.map +1 -1
- package/dist/components/docs/index.d.ts +4 -0
- package/dist/components/docs/index.d.ts.map +1 -1
- package/dist/components/docs/index.js +16 -8
- package/dist/components/docs/skeletons.d.ts +32 -0
- package/dist/components/docs/skeletons.d.ts.map +1 -0
- package/dist/components/docs/use-docs-resolve-link.d.ts +20 -0
- package/dist/components/docs/use-docs-resolve-link.d.ts.map +1 -0
- package/dist/components/docs/use-document-tree.d.ts.map +1 -1
- package/dist/components/embeds/embed-container.d.ts +37 -0
- package/dist/components/embeds/embed-container.d.ts.map +1 -0
- package/dist/components/embeds/embed-iframe.d.ts.map +1 -1
- package/dist/components/embeds/file-download-card.d.ts +18 -0
- package/dist/components/embeds/file-download-card.d.ts.map +1 -0
- package/dist/components/embeds/index.cjs +38 -15
- package/dist/components/embeds/index.cjs.map +1 -1
- package/dist/components/embeds/index.d.ts +8 -0
- package/dist/components/embeds/index.d.ts.map +1 -1
- package/dist/components/embeds/index.js +40 -17
- package/dist/components/embeds/linkedin-embed-client.d.ts +8 -0
- package/dist/components/embeds/linkedin-embed-client.d.ts.map +1 -0
- package/dist/components/embeds/markdown-image.d.ts +5 -0
- package/dist/components/embeds/markdown-image.d.ts.map +1 -0
- package/dist/components/embeds/reddit-embed-client.d.ts +7 -0
- package/dist/components/embeds/reddit-embed-client.d.ts.map +1 -0
- package/dist/components/embeds/rich-markdown-runtime.d.ts +46 -0
- package/dist/components/embeds/rich-markdown-runtime.d.ts.map +1 -0
- package/dist/components/embeds/twitter-embed-client.d.ts +8 -0
- package/dist/components/embeds/twitter-embed-client.d.ts.map +1 -0
- package/dist/components/faq/index.cjs +9 -16
- package/dist/components/faq/index.cjs.map +1 -1
- package/dist/components/faq/index.js +8 -15
- package/dist/components/features/index.cjs +8 -16
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.js +24 -32
- package/dist/components/index.cjs +257 -452
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +781 -976
- package/dist/components/index.js.map +1 -1
- package/dist/components/layout/page-header.d.ts +78 -0
- package/dist/components/layout/page-header.d.ts.map +1 -0
- package/dist/components/layout/page-layout.d.ts +10 -1
- package/dist/components/layout/page-layout.d.ts.map +1 -1
- package/dist/components/layout/page-with-header.d.ts +67 -0
- package/dist/components/layout/page-with-header.d.ts.map +1 -0
- package/dist/components/layout/title-block.d.ts +17 -1
- package/dist/components/layout/title-block.d.ts.map +1 -1
- package/dist/components/navigation/index.cjs +7 -15
- package/dist/components/navigation/index.cjs.map +1 -1
- package/dist/components/navigation/index.js +9 -17
- package/dist/components/onboarding-guides/index.cjs +35 -36
- package/dist/components/onboarding-guides/index.cjs.map +1 -1
- package/dist/components/onboarding-guides/index.js +13 -14
- package/dist/components/onboarding-guides/index.js.map +1 -1
- package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts +1 -1
- package/dist/components/onboarding-guides/onboarding-guide-detail-view.d.ts.map +1 -1
- package/dist/components/related-content/index.cjs +9 -16
- package/dist/components/related-content/index.cjs.map +1 -1
- package/dist/components/related-content/index.js +8 -15
- package/dist/components/shared/dev-section/dev-section-page.d.ts +9 -0
- package/dist/components/shared/dev-section/dev-section-page.d.ts.map +1 -1
- package/dist/components/shared/dev-section/dev-section-view.d.ts.map +1 -1
- package/dist/components/shared/dev-section/index.d.ts +1 -1
- package/dist/components/shared/dev-section/index.d.ts.map +1 -1
- package/dist/components/shared/doc-search/use-doc-search.d.ts.map +1 -1
- package/dist/components/shared/legal-document/legal-document-page.d.ts.map +1 -1
- package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
- package/dist/components/tickets/index.cjs +100 -112
- package/dist/components/tickets/index.cjs.map +1 -1
- package/dist/components/tickets/index.js +20 -32
- package/dist/components/tickets/index.js.map +1 -1
- package/dist/components/ui/file-manager/index.cjs +50 -52
- package/dist/components/ui/file-manager/index.cjs.map +1 -1
- package/dist/components/ui/file-manager/index.js +4 -6
- package/dist/components/ui/file-manager/index.js.map +1 -1
- package/dist/components/ui/index.cjs +13 -19
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.d.ts +2 -0
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +133 -139
- package/dist/components/ui/release-changelog-section.d.ts +6 -2
- package/dist/components/ui/release-changelog-section.d.ts.map +1 -1
- package/dist/components/ui/rich-markdown-renderer.d.ts +34 -0
- package/dist/components/ui/rich-markdown-renderer.d.ts.map +1 -0
- package/dist/components/ui/simple-markdown-renderer.d.ts +2 -8
- package/dist/components/ui/simple-markdown-renderer.d.ts.map +1 -1
- package/dist/contexts/chat-runtime-context.d.ts +14 -0
- package/dist/contexts/chat-runtime-context.d.ts.map +1 -1
- package/dist/contexts/index.cjs +3 -3
- package/dist/contexts/index.js +5 -5
- package/dist/embed-shims/index.cjs +3 -3
- package/dist/embed-shims/index.cjs.map +1 -1
- package/dist/embed-shims/index.js +4 -4
- package/dist/hooks/index.cjs +4 -9
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.js +6 -11
- package/dist/index.cjs +14 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +362 -368
- package/dist/types/doc-source.d.ts +31 -1
- package/dist/types/doc-source.d.ts.map +1 -1
- package/dist/utils/index.cjs +4 -0
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +4 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/page-header-constants.d.ts +15 -0
- package/dist/utils/page-header-constants.d.ts.map +1 -0
- package/dist/utils/social-embed-cache.d.ts +29 -0
- package/dist/utils/social-embed-cache.d.ts.map +1 -0
- package/package.json +7 -1
- package/src/components/case-studies/index.ts +4 -0
- package/src/components/case-studies/share-experience-section.tsx +185 -0
- package/src/components/chat/embeddable-chat.tsx +1 -1
- package/src/components/docs/doc-viewer.tsx +111 -19
- package/src/components/docs/docs-hub-page.tsx +149 -0
- package/src/components/docs/index.ts +17 -0
- package/src/components/docs/skeletons.tsx +138 -0
- package/src/components/docs/use-docs-resolve-link.ts +52 -0
- package/src/components/docs/use-document-tree.ts +21 -0
- package/src/components/embeds/embed-container.tsx +80 -0
- package/src/components/embeds/embed-iframe.tsx +7 -9
- package/src/components/embeds/file-download-card.tsx +54 -0
- package/src/components/embeds/index.ts +30 -0
- package/src/components/embeds/linkedin-embed-client.tsx +100 -0
- package/src/components/embeds/markdown-image.tsx +88 -0
- package/src/components/embeds/og-link-preview.tsx +13 -13
- package/src/components/embeds/reddit-embed-client.tsx +550 -0
- package/src/components/embeds/rich-markdown-runtime.tsx +79 -0
- package/src/components/embeds/twitter-embed-client.tsx +308 -0
- package/src/components/layout/page-header.tsx +182 -0
- package/src/components/layout/page-layout.tsx +14 -1
- package/src/components/layout/page-with-header.tsx +110 -0
- package/src/components/layout/title-block.tsx +40 -62
- package/src/components/onboarding-guides/onboarding-guide-detail-view.tsx +3 -3
- package/src/components/shared/dev-section/dev-section-page.tsx +9 -1
- package/src/components/shared/dev-section/dev-section-view.tsx +14 -9
- package/src/components/shared/dev-section/index.ts +1 -1
- package/src/components/shared/doc-search/use-doc-search.ts +7 -3
- package/src/components/shared/legal-document/legal-document-page.tsx +2 -2
- package/src/components/shared/product-release/release-detail-page.tsx +6 -4
- package/src/components/ui/index.ts +2 -0
- package/src/components/ui/release-changelog-section.tsx +7 -2
- package/src/components/ui/rich-markdown-renderer.tsx +1203 -0
- package/src/components/ui/simple-markdown-renderer.tsx +7 -11
- package/src/contexts/chat-runtime-context.tsx +14 -0
- package/src/types/doc-source.ts +33 -1
- package/src/utils/index.ts +1 -0
- package/src/utils/page-header-constants.ts +15 -0
- package/src/utils/social-embed-cache.ts +391 -0
- package/dist/chunk-26PKDALD.js +0 -2379
- package/dist/chunk-26PKDALD.js.map +0 -1
- package/dist/chunk-3MCHAFHB.js +0 -89
- package/dist/chunk-3MCHAFHB.js.map +0 -1
- package/dist/chunk-5E2HOSSH.cjs.map +0 -1
- package/dist/chunk-66AANIOC.cjs +0 -619
- package/dist/chunk-66AANIOC.cjs.map +0 -1
- package/dist/chunk-6JINAOI7.cjs +0 -311
- package/dist/chunk-6JINAOI7.cjs.map +0 -1
- package/dist/chunk-7RIYT7ZH.js.map +0 -1
- package/dist/chunk-AQOWFSMB.cjs.map +0 -1
- package/dist/chunk-BOCFIKYS.cjs +0 -3009
- package/dist/chunk-BOCFIKYS.cjs.map +0 -1
- package/dist/chunk-D652TJBQ.js +0 -3009
- package/dist/chunk-D652TJBQ.js.map +0 -1
- package/dist/chunk-E4XABBSU.js.map +0 -1
- package/dist/chunk-EL6QLAWX.js.map +0 -1
- package/dist/chunk-EYEW6PTA.cjs.map +0 -1
- package/dist/chunk-FQJK446R.js +0 -1606
- package/dist/chunk-FQJK446R.js.map +0 -1
- package/dist/chunk-GLLDTKZK.cjs.map +0 -1
- package/dist/chunk-IE6OU3WQ.cjs.map +0 -1
- package/dist/chunk-J54Z3OCR.cjs +0 -1606
- package/dist/chunk-J54Z3OCR.cjs.map +0 -1
- package/dist/chunk-K2PFPBMF.js.map +0 -1
- package/dist/chunk-KXCRGTRN.cjs +0 -2379
- package/dist/chunk-KXCRGTRN.cjs.map +0 -1
- package/dist/chunk-LCNMR277.js.map +0 -1
- package/dist/chunk-LFGGF7OT.cjs +0 -449
- package/dist/chunk-LFGGF7OT.cjs.map +0 -1
- package/dist/chunk-M2OCXTNT.js +0 -311
- package/dist/chunk-M2OCXTNT.js.map +0 -1
- package/dist/chunk-ME4EVDFP.js +0 -619
- package/dist/chunk-ME4EVDFP.js.map +0 -1
- package/dist/chunk-OQ6X7ZOC.js +0 -449
- package/dist/chunk-OQ6X7ZOC.js.map +0 -1
- package/dist/chunk-OY7OF7E7.js.map +0 -1
- package/dist/chunk-POKKCWKF.js +0 -354
- package/dist/chunk-POKKCWKF.js.map +0 -1
- package/dist/chunk-QHIXS3W2.cjs.map +0 -1
- package/dist/chunk-TFSYSWPS.cjs +0 -89
- package/dist/chunk-TFSYSWPS.cjs.map +0 -1
- package/dist/chunk-W6M2FLLT.cjs.map +0 -1
- package/dist/chunk-X647HY3F.cjs.map +0 -1
- package/dist/chunk-X6BV7MB7.cjs.map +0 -1
- package/dist/chunk-XREEV72C.cjs.map +0 -1
- package/dist/chunk-YETA25JW.cjs +0 -354
- package/dist/chunk-YETA25JW.cjs.map +0 -1
- package/dist/chunk-YIGPRLQY.cjs.map +0 -1
- /package/dist/{chunk-3ZXUQQL4.js.map → chunk-PI4WSYQV.js.map} +0 -0
|
@@ -7,6 +7,9 @@ import {
|
|
|
7
7
|
cn,
|
|
8
8
|
init_cn
|
|
9
9
|
} from "./chunk-XTCBRQN2.js";
|
|
10
|
+
import {
|
|
11
|
+
CheckboxCheckmarkIcon
|
|
12
|
+
} from "./chunk-6U3IUD57.js";
|
|
10
13
|
import {
|
|
11
14
|
__esm
|
|
12
15
|
} from "./chunk-GGWZFCYS.js";
|
|
@@ -35,8 +38,8 @@ var init_button_styles = __esm({
|
|
|
35
38
|
// src/components/ui/button/button.tsx
|
|
36
39
|
import { Slot } from "@radix-ui/react-slot";
|
|
37
40
|
import { cva } from "class-variance-authority";
|
|
38
|
-
import
|
|
39
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
41
|
+
import React3 from "react";
|
|
42
|
+
import { Fragment, jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
40
43
|
var buttonVariants, splitShellVariants, splitSlotVariants, Spinner, Button;
|
|
41
44
|
var init_button = __esm({
|
|
42
45
|
"src/components/ui/button/button.tsx"() {
|
|
@@ -149,9 +152,9 @@ var init_button = __esm({
|
|
|
149
152
|
defaultVariants: { slot: "main", size: "default", variant: "accent" }
|
|
150
153
|
}
|
|
151
154
|
);
|
|
152
|
-
Spinner = () => /* @__PURE__ */
|
|
153
|
-
/* @__PURE__ */
|
|
154
|
-
/* @__PURE__ */
|
|
155
|
+
Spinner = () => /* @__PURE__ */ jsxs3("svg", { className: "animate-spin", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", "aria-hidden": "true", children: [
|
|
156
|
+
/* @__PURE__ */ jsx3("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }),
|
|
157
|
+
/* @__PURE__ */ jsx3(
|
|
155
158
|
"path",
|
|
156
159
|
{
|
|
157
160
|
className: "opacity-75",
|
|
@@ -160,7 +163,7 @@ var init_button = __esm({
|
|
|
160
163
|
}
|
|
161
164
|
)
|
|
162
165
|
] });
|
|
163
|
-
Button =
|
|
166
|
+
Button = React3.forwardRef(function Button2({
|
|
164
167
|
className,
|
|
165
168
|
variant,
|
|
166
169
|
size,
|
|
@@ -191,16 +194,16 @@ var init_button = __esm({
|
|
|
191
194
|
);
|
|
192
195
|
const mainSlotClass = splitSlotVariants({ slot: "main", size: safeSize, variant: safeVariant });
|
|
193
196
|
const iconSlotClass = splitSlotVariants({ slot: "icon", size: safeSize, variant: safeVariant });
|
|
194
|
-
const splitContent = /* @__PURE__ */
|
|
195
|
-
/* @__PURE__ */
|
|
196
|
-
/* @__PURE__ */
|
|
197
|
-
leftIcon && /* @__PURE__ */
|
|
197
|
+
const splitContent = /* @__PURE__ */ jsxs3(Fragment, { children: [
|
|
198
|
+
/* @__PURE__ */ jsxs3("span", { className: cn("contents", loading && "invisible"), children: [
|
|
199
|
+
/* @__PURE__ */ jsxs3("span", { className: mainSlotClass, children: [
|
|
200
|
+
leftIcon && /* @__PURE__ */ jsx3("span", { className: "inline-flex items-center", children: leftIcon }),
|
|
198
201
|
children,
|
|
199
|
-
rightIcon && /* @__PURE__ */
|
|
202
|
+
rightIcon && /* @__PURE__ */ jsx3("span", { className: "inline-flex items-center", children: rightIcon })
|
|
200
203
|
] }),
|
|
201
|
-
/* @__PURE__ */
|
|
204
|
+
/* @__PURE__ */ jsx3("span", { "aria-hidden": "true", className: iconSlotClass, children: splitIcon })
|
|
202
205
|
] }),
|
|
203
|
-
loading && /* @__PURE__ */
|
|
206
|
+
loading && /* @__PURE__ */ jsx3("span", { className: "absolute inset-0 inline-flex items-center justify-center text-ods-text-primary", children: /* @__PURE__ */ jsx3(Spinner, {}) })
|
|
204
207
|
] });
|
|
205
208
|
const splitAnchor = linkProps ?? (href ? {
|
|
206
209
|
href,
|
|
@@ -209,7 +212,7 @@ var init_button = __esm({
|
|
|
209
212
|
onClick
|
|
210
213
|
} : null);
|
|
211
214
|
if (splitAnchor) {
|
|
212
|
-
return /* @__PURE__ */
|
|
215
|
+
return /* @__PURE__ */ jsx3(
|
|
213
216
|
next_link_default,
|
|
214
217
|
{
|
|
215
218
|
href: splitAnchor.href,
|
|
@@ -225,7 +228,7 @@ var init_button = __esm({
|
|
|
225
228
|
}
|
|
226
229
|
);
|
|
227
230
|
}
|
|
228
|
-
return /* @__PURE__ */
|
|
231
|
+
return /* @__PURE__ */ jsx3(
|
|
229
232
|
"button",
|
|
230
233
|
{
|
|
231
234
|
ref,
|
|
@@ -239,15 +242,15 @@ var init_button = __esm({
|
|
|
239
242
|
}
|
|
240
243
|
const classes = cn(buttonVariants({ variant, size, fullWidth, noPaddingX }), className);
|
|
241
244
|
if (asChild) {
|
|
242
|
-
return /* @__PURE__ */
|
|
245
|
+
return /* @__PURE__ */ jsx3(Slot, { ref, className: classes, ...props, children });
|
|
243
246
|
}
|
|
244
|
-
const content = /* @__PURE__ */
|
|
245
|
-
/* @__PURE__ */
|
|
246
|
-
leftIcon && /* @__PURE__ */
|
|
247
|
+
const content = /* @__PURE__ */ jsxs3(Fragment, { children: [
|
|
248
|
+
/* @__PURE__ */ jsxs3("span", { className: cn("contents", loading && "invisible"), children: [
|
|
249
|
+
leftIcon && /* @__PURE__ */ jsx3("span", { className: "inline-flex items-center", children: leftIcon }),
|
|
247
250
|
children,
|
|
248
|
-
rightIcon && /* @__PURE__ */
|
|
251
|
+
rightIcon && /* @__PURE__ */ jsx3("span", { className: "inline-flex items-center", children: rightIcon })
|
|
249
252
|
] }),
|
|
250
|
-
loading && /* @__PURE__ */
|
|
253
|
+
loading && /* @__PURE__ */ jsx3("span", { className: "absolute inset-0 inline-flex items-center justify-center text-ods-text-primary", children: /* @__PURE__ */ jsx3(Spinner, {}) })
|
|
251
254
|
] });
|
|
252
255
|
const anchor = linkProps ?? (href ? {
|
|
253
256
|
href,
|
|
@@ -256,7 +259,7 @@ var init_button = __esm({
|
|
|
256
259
|
onClick
|
|
257
260
|
} : null);
|
|
258
261
|
if (anchor) {
|
|
259
|
-
return /* @__PURE__ */
|
|
262
|
+
return /* @__PURE__ */ jsx3(
|
|
260
263
|
next_link_default,
|
|
261
264
|
{
|
|
262
265
|
href: anchor.href,
|
|
@@ -272,7 +275,7 @@ var init_button = __esm({
|
|
|
272
275
|
}
|
|
273
276
|
);
|
|
274
277
|
}
|
|
275
|
-
return /* @__PURE__ */
|
|
278
|
+
return /* @__PURE__ */ jsx3(
|
|
276
279
|
"button",
|
|
277
280
|
{
|
|
278
281
|
ref,
|
|
@@ -289,12 +292,12 @@ var init_button = __esm({
|
|
|
289
292
|
|
|
290
293
|
// src/components/ui/button/split-button.tsx
|
|
291
294
|
import { cva as cva2 } from "class-variance-authority";
|
|
292
|
-
import
|
|
293
|
-
import { jsx as
|
|
295
|
+
import React4 from "react";
|
|
296
|
+
import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
294
297
|
function Half({ variant, size, side, href, openInNewTab, prefetch, onClick, disabled, grow, type = "button", ariaLabel, children }) {
|
|
295
298
|
const classes = cn(splitHalfVariants({ variant, size, side }), grow && "flex-1");
|
|
296
299
|
if (href) {
|
|
297
|
-
return /* @__PURE__ */
|
|
300
|
+
return /* @__PURE__ */ jsx4(
|
|
298
301
|
next_link_default,
|
|
299
302
|
{
|
|
300
303
|
href,
|
|
@@ -310,7 +313,7 @@ function Half({ variant, size, side, href, openInNewTab, prefetch, onClick, disa
|
|
|
310
313
|
}
|
|
311
314
|
);
|
|
312
315
|
}
|
|
313
|
-
return /* @__PURE__ */
|
|
316
|
+
return /* @__PURE__ */ jsx4(
|
|
314
317
|
"button",
|
|
315
318
|
{
|
|
316
319
|
type,
|
|
@@ -376,7 +379,7 @@ var init_split_button = __esm({
|
|
|
376
379
|
],
|
|
377
380
|
defaultVariants: { variant: "accent", size: "default", side: "main" }
|
|
378
381
|
});
|
|
379
|
-
SplitButton =
|
|
382
|
+
SplitButton = React4.forwardRef(function SplitButton2({
|
|
380
383
|
variant = "accent",
|
|
381
384
|
size = "default",
|
|
382
385
|
fullWidth = false,
|
|
@@ -395,7 +398,7 @@ var init_split_button = __esm({
|
|
|
395
398
|
"aria-label": ariaLabel,
|
|
396
399
|
groupAriaLabel
|
|
397
400
|
}, ref) {
|
|
398
|
-
return /* @__PURE__ */
|
|
401
|
+
return /* @__PURE__ */ jsxs4(
|
|
399
402
|
"div",
|
|
400
403
|
{
|
|
401
404
|
ref,
|
|
@@ -403,7 +406,7 @@ var init_split_button = __esm({
|
|
|
403
406
|
"aria-label": groupAriaLabel,
|
|
404
407
|
className: cn("inline-flex items-stretch", fullWidth && "w-full", className),
|
|
405
408
|
children: [
|
|
406
|
-
/* @__PURE__ */
|
|
409
|
+
/* @__PURE__ */ jsxs4(
|
|
407
410
|
Half,
|
|
408
411
|
{
|
|
409
412
|
variant,
|
|
@@ -418,13 +421,13 @@ var init_split_button = __esm({
|
|
|
418
421
|
type,
|
|
419
422
|
ariaLabel,
|
|
420
423
|
children: [
|
|
421
|
-
leftIcon && /* @__PURE__ */
|
|
422
|
-
/* @__PURE__ */
|
|
423
|
-
rightIcon && /* @__PURE__ */
|
|
424
|
+
leftIcon && /* @__PURE__ */ jsx4("span", { className: "inline-flex items-center", children: leftIcon }),
|
|
425
|
+
/* @__PURE__ */ jsx4("span", { children }),
|
|
426
|
+
rightIcon && /* @__PURE__ */ jsx4("span", { className: "inline-flex items-center", children: rightIcon })
|
|
424
427
|
]
|
|
425
428
|
}
|
|
426
429
|
),
|
|
427
|
-
/* @__PURE__ */
|
|
430
|
+
/* @__PURE__ */ jsx4(
|
|
428
431
|
Half,
|
|
429
432
|
{
|
|
430
433
|
variant,
|
|
@@ -436,7 +439,7 @@ var init_split_button = __esm({
|
|
|
436
439
|
onClick: iconAction.onClick,
|
|
437
440
|
disabled: disabled || iconAction.disabled,
|
|
438
441
|
ariaLabel: iconAction["aria-label"],
|
|
439
|
-
children: /* @__PURE__ */
|
|
442
|
+
children: /* @__PURE__ */ jsx4("span", { className: "inline-flex items-center", children: iconAction.icon })
|
|
440
443
|
}
|
|
441
444
|
)
|
|
442
445
|
]
|
|
@@ -455,30 +458,173 @@ var init_button2 = __esm({
|
|
|
455
458
|
}
|
|
456
459
|
});
|
|
457
460
|
|
|
461
|
+
// src/components/ui/field-wrapper.tsx
|
|
462
|
+
init_cn();
|
|
463
|
+
import * as React from "react";
|
|
464
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
465
|
+
var errorVariantClasses = {
|
|
466
|
+
error: "text-ods-error",
|
|
467
|
+
warning: "text-[var(--ods-attention-yellow-warning)]"
|
|
468
|
+
};
|
|
469
|
+
var FieldWrapper = React.forwardRef(
|
|
470
|
+
({ label, error, errorVariant = "error", className, children }, ref) => {
|
|
471
|
+
const hasChrome = label != null || error != null;
|
|
472
|
+
return /* @__PURE__ */ jsxs("div", { ref, className: cn(hasChrome ? "relative flex w-full flex-col" : "contents", className), children: [
|
|
473
|
+
label && /* @__PURE__ */ jsx("label", { className: "text-h4 text-ods-text-primary mb-1", children: label }),
|
|
474
|
+
children,
|
|
475
|
+
error && /* @__PURE__ */ jsx("p", { className: cn("absolute bottom-0 left-0 right-0 translate-y-full text-h6 truncate", errorVariantClasses[errorVariant]), title: error, children: error })
|
|
476
|
+
] });
|
|
477
|
+
}
|
|
478
|
+
);
|
|
479
|
+
FieldWrapper.displayName = "FieldWrapper";
|
|
480
|
+
|
|
481
|
+
// src/components/ui/input.tsx
|
|
482
|
+
init_cn();
|
|
483
|
+
import * as React2 from "react";
|
|
484
|
+
import { Loader2 } from "lucide-react";
|
|
485
|
+
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
486
|
+
var invalidBorderClasses = {
|
|
487
|
+
error: "border-ods-error hover:border-ods-error has-[:focus]:border-ods-error",
|
|
488
|
+
warning: "!border-[var(--ods-attention-yellow-warning)] hover:!border-[var(--ods-attention-yellow-warning)] has-[:focus]:!border-[var(--ods-attention-yellow-warning)]"
|
|
489
|
+
};
|
|
490
|
+
var Input = React2.forwardRef(
|
|
491
|
+
({ className, type, invalid = false, startAdornment, endAdornment, label, error, errorVariant = "error", loading = false, ...props }, ref) => {
|
|
492
|
+
const isInvalid = invalid || !!error;
|
|
493
|
+
if (type === "range") {
|
|
494
|
+
const rangeInput = /* @__PURE__ */ jsx2(
|
|
495
|
+
"input",
|
|
496
|
+
{
|
|
497
|
+
type: "range",
|
|
498
|
+
className: cn(
|
|
499
|
+
"w-full cursor-pointer appearance-none rounded-full bg-white/30 h-1",
|
|
500
|
+
// Webkit (Chrome/Safari) thumb
|
|
501
|
+
"[&::-webkit-slider-thumb]:appearance-none",
|
|
502
|
+
"[&::-webkit-slider-thumb]:w-3 [&::-webkit-slider-thumb]:h-3",
|
|
503
|
+
"[&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-white",
|
|
504
|
+
"[&::-webkit-slider-thumb]:cursor-pointer [&::-webkit-slider-thumb]:shadow-sm",
|
|
505
|
+
// Firefox thumb
|
|
506
|
+
"[&::-moz-range-thumb]:w-3 [&::-moz-range-thumb]:h-3",
|
|
507
|
+
"[&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:bg-white",
|
|
508
|
+
"[&::-moz-range-thumb]:border-0 [&::-moz-range-thumb]:cursor-pointer",
|
|
509
|
+
// Firefox track
|
|
510
|
+
"[&::-moz-range-track]:bg-transparent",
|
|
511
|
+
// Disabled
|
|
512
|
+
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
513
|
+
className
|
|
514
|
+
),
|
|
515
|
+
ref,
|
|
516
|
+
...props
|
|
517
|
+
}
|
|
518
|
+
);
|
|
519
|
+
return label ? /* @__PURE__ */ jsx2(FieldWrapper, { label, error, errorVariant, children: rangeInput }) : rangeInput;
|
|
520
|
+
}
|
|
521
|
+
const content = /* @__PURE__ */ jsxs2(
|
|
522
|
+
"label",
|
|
523
|
+
{
|
|
524
|
+
"data-invalid": isInvalid || void 0,
|
|
525
|
+
className: cn(
|
|
526
|
+
// Layout & spacing
|
|
527
|
+
"flex w-full items-center gap-2 rounded-[6px] border px-3 h-11 md:h-12 cursor-text",
|
|
528
|
+
// Focus-within states
|
|
529
|
+
"has-[:focus-visible]:outline-none",
|
|
530
|
+
"group",
|
|
531
|
+
// Animations & touch UX
|
|
532
|
+
"transition-colors duration-200",
|
|
533
|
+
// Theme palette
|
|
534
|
+
"bg-ods-card border-ods-border has-[:focus]:border-ods-accent",
|
|
535
|
+
// Hover & active (not disabled)
|
|
536
|
+
!props.disabled && "hover:bg-ods-bg-hover hover:border-ods-border-hover active:bg-ods-bg-active active:border-ods-border-active",
|
|
537
|
+
// Disabled
|
|
538
|
+
props.disabled && "!cursor-not-allowed bg-ods-bg",
|
|
539
|
+
// Invalid
|
|
540
|
+
isInvalid && invalidBorderClasses[errorVariant],
|
|
541
|
+
className
|
|
542
|
+
),
|
|
543
|
+
children: [
|
|
544
|
+
startAdornment && /* @__PURE__ */ jsx2("span", { className: "text-h6 flex-shrink-0 text-ods-text-secondary transition-colors duration-200 group-has-[:focus]:text-ods-accent group-data-[invalid]:text-ods-error [&_svg]:size-4 md:[&_svg]:size-6", children: startAdornment }),
|
|
545
|
+
/* @__PURE__ */ jsx2(
|
|
546
|
+
"input",
|
|
547
|
+
{
|
|
548
|
+
type,
|
|
549
|
+
className: cn(
|
|
550
|
+
// Layout
|
|
551
|
+
"flex-1 min-w-0 bg-transparent border-none outline-none",
|
|
552
|
+
// Typography
|
|
553
|
+
"text-h4",
|
|
554
|
+
// Colors
|
|
555
|
+
"text-ods-text-primary placeholder:text-ods-text-secondary",
|
|
556
|
+
// File input adjustments
|
|
557
|
+
"file:border-0 file:bg-transparent",
|
|
558
|
+
// Disabled
|
|
559
|
+
"disabled:cursor-not-allowed disabled:text-ods-text-disabled disabled:placeholder:text-ods-border",
|
|
560
|
+
// Touch
|
|
561
|
+
"touch-manipulation",
|
|
562
|
+
// Autofill override
|
|
563
|
+
"[&:-webkit-autofill]:[-webkit-box-shadow:0_0_0_9999px_transparent_inset] [&:-webkit-autofill]:[-webkit-text-fill-color:var(--color-text-primary)] [&:-webkit-autofill]:[caret-color:var(--color-text-primary)] [&:-webkit-autofill]:[transition:background-color_9999s_ease-in-out_0s]"
|
|
564
|
+
),
|
|
565
|
+
ref,
|
|
566
|
+
...props
|
|
567
|
+
}
|
|
568
|
+
),
|
|
569
|
+
loading && /* @__PURE__ */ jsx2(Loader2, { className: "animate-spin flex-shrink-0 text-ods-text-secondary size-4 md:size-6" }),
|
|
570
|
+
!loading && endAdornment && /* @__PURE__ */ jsx2("span", { className: "text-h6 flex-shrink-0 text-ods-text-secondary transition-colors duration-200 group-has-[:focus]:text-ods-accent group-data-[invalid]:text-ods-error [&_svg]:size-4 md:[&_svg]:size-6", children: endAdornment })
|
|
571
|
+
]
|
|
572
|
+
}
|
|
573
|
+
);
|
|
574
|
+
return /* @__PURE__ */ jsx2(FieldWrapper, { label, error, errorVariant, children: content });
|
|
575
|
+
}
|
|
576
|
+
);
|
|
577
|
+
Input.displayName = "Input";
|
|
578
|
+
|
|
579
|
+
// src/components/ui/checkbox.tsx
|
|
580
|
+
init_cn();
|
|
581
|
+
import * as React5 from "react";
|
|
582
|
+
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
583
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
584
|
+
var Checkbox = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
|
|
585
|
+
CheckboxPrimitive.Root,
|
|
586
|
+
{
|
|
587
|
+
ref,
|
|
588
|
+
className: cn(
|
|
589
|
+
"peer h-4 w-4 shrink-0 rounded-sm border border-ods-border bg-ods-card focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ods-accent focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-ods-accent data-[state=checked]:border-ods-accent",
|
|
590
|
+
className
|
|
591
|
+
),
|
|
592
|
+
...props,
|
|
593
|
+
children: /* @__PURE__ */ jsx5(
|
|
594
|
+
CheckboxPrimitive.Indicator,
|
|
595
|
+
{
|
|
596
|
+
className: cn("flex items-center justify-center text-ods-text-on-accent"),
|
|
597
|
+
children: /* @__PURE__ */ jsx5(CheckboxCheckmarkIcon, { size: 10 })
|
|
598
|
+
}
|
|
599
|
+
)
|
|
600
|
+
}
|
|
601
|
+
));
|
|
602
|
+
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
603
|
+
|
|
458
604
|
// src/components/ui/dropdown-menu.tsx
|
|
459
605
|
init_cn();
|
|
460
|
-
import * as
|
|
606
|
+
import * as React7 from "react";
|
|
461
607
|
import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
|
|
462
608
|
import { Check, ChevronRight, Circle } from "lucide-react";
|
|
463
609
|
|
|
464
610
|
// src/components/ui/portal-container.tsx
|
|
465
|
-
import * as
|
|
466
|
-
var PortalContainerContext =
|
|
611
|
+
import * as React6 from "react";
|
|
612
|
+
var PortalContainerContext = React6.createContext(
|
|
467
613
|
null
|
|
468
614
|
);
|
|
469
615
|
function usePortalContainer() {
|
|
470
|
-
return
|
|
616
|
+
return React6.useContext(PortalContainerContext);
|
|
471
617
|
}
|
|
472
618
|
|
|
473
619
|
// src/components/ui/dropdown-menu.tsx
|
|
474
|
-
import { jsx as
|
|
620
|
+
import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
475
621
|
var DropdownMenu = DropdownMenuPrimitive.Root;
|
|
476
622
|
var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
|
|
477
623
|
var DropdownMenuGroup = DropdownMenuPrimitive.Group;
|
|
478
624
|
var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
|
|
479
625
|
var DropdownMenuSub = DropdownMenuPrimitive.Sub;
|
|
480
626
|
var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
|
|
481
|
-
var DropdownMenuSubTrigger =
|
|
627
|
+
var DropdownMenuSubTrigger = React7.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs5(
|
|
482
628
|
DropdownMenuPrimitive.SubTrigger,
|
|
483
629
|
{
|
|
484
630
|
ref,
|
|
@@ -490,12 +636,12 @@ var DropdownMenuSubTrigger = React4.forwardRef(({ className, inset, children, ..
|
|
|
490
636
|
...props,
|
|
491
637
|
children: [
|
|
492
638
|
children,
|
|
493
|
-
/* @__PURE__ */
|
|
639
|
+
/* @__PURE__ */ jsx6(ChevronRight, { className: "ml-auto" })
|
|
494
640
|
]
|
|
495
641
|
}
|
|
496
642
|
));
|
|
497
643
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
498
|
-
var DropdownMenuSubContent =
|
|
644
|
+
var DropdownMenuSubContent = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(
|
|
499
645
|
DropdownMenuPrimitive.SubContent,
|
|
500
646
|
{
|
|
501
647
|
ref,
|
|
@@ -507,9 +653,9 @@ var DropdownMenuSubContent = React4.forwardRef(({ className, ...props }, ref) =>
|
|
|
507
653
|
}
|
|
508
654
|
));
|
|
509
655
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
510
|
-
var DropdownMenuContent =
|
|
656
|
+
var DropdownMenuContent = React7.forwardRef(({ className, sideOffset = 4, ...props }, ref) => {
|
|
511
657
|
const container = usePortalContainer();
|
|
512
|
-
return /* @__PURE__ */
|
|
658
|
+
return /* @__PURE__ */ jsx6(DropdownMenuPrimitive.Portal, { container: container ?? void 0, children: /* @__PURE__ */ jsx6(
|
|
513
659
|
DropdownMenuPrimitive.Content,
|
|
514
660
|
{
|
|
515
661
|
ref,
|
|
@@ -523,7 +669,7 @@ var DropdownMenuContent = React4.forwardRef(({ className, sideOffset = 4, ...pro
|
|
|
523
669
|
) });
|
|
524
670
|
});
|
|
525
671
|
DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
|
|
526
|
-
var DropdownMenuItem =
|
|
672
|
+
var DropdownMenuItem = React7.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx6(
|
|
527
673
|
DropdownMenuPrimitive.Item,
|
|
528
674
|
{
|
|
529
675
|
ref,
|
|
@@ -536,7 +682,7 @@ var DropdownMenuItem = React4.forwardRef(({ className, inset, ...props }, ref) =
|
|
|
536
682
|
}
|
|
537
683
|
));
|
|
538
684
|
DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
|
|
539
|
-
var DropdownMenuCheckboxItem =
|
|
685
|
+
var DropdownMenuCheckboxItem = React7.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs5(
|
|
540
686
|
DropdownMenuPrimitive.CheckboxItem,
|
|
541
687
|
{
|
|
542
688
|
ref,
|
|
@@ -547,13 +693,13 @@ var DropdownMenuCheckboxItem = React4.forwardRef(({ className, children, checked
|
|
|
547
693
|
checked,
|
|
548
694
|
...props,
|
|
549
695
|
children: [
|
|
550
|
-
/* @__PURE__ */
|
|
696
|
+
/* @__PURE__ */ jsx6("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx6(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx6(Check, { className: "h-4 w-4" }) }) }),
|
|
551
697
|
children
|
|
552
698
|
]
|
|
553
699
|
}
|
|
554
700
|
));
|
|
555
701
|
DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
|
|
556
|
-
var DropdownMenuRadioItem =
|
|
702
|
+
var DropdownMenuRadioItem = React7.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs5(
|
|
557
703
|
DropdownMenuPrimitive.RadioItem,
|
|
558
704
|
{
|
|
559
705
|
ref,
|
|
@@ -563,13 +709,13 @@ var DropdownMenuRadioItem = React4.forwardRef(({ className, children, ...props }
|
|
|
563
709
|
),
|
|
564
710
|
...props,
|
|
565
711
|
children: [
|
|
566
|
-
/* @__PURE__ */
|
|
712
|
+
/* @__PURE__ */ jsx6("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx6(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx6(Circle, { className: "h-2 w-2 fill-ods-accent" }) }) }),
|
|
567
713
|
children
|
|
568
714
|
]
|
|
569
715
|
}
|
|
570
716
|
));
|
|
571
717
|
DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
|
|
572
|
-
var DropdownMenuLabel =
|
|
718
|
+
var DropdownMenuLabel = React7.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx6(
|
|
573
719
|
DropdownMenuPrimitive.Label,
|
|
574
720
|
{
|
|
575
721
|
ref,
|
|
@@ -582,7 +728,7 @@ var DropdownMenuLabel = React4.forwardRef(({ className, inset, ...props }, ref)
|
|
|
582
728
|
}
|
|
583
729
|
));
|
|
584
730
|
DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
|
|
585
|
-
var DropdownMenuSeparator =
|
|
731
|
+
var DropdownMenuSeparator = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(
|
|
586
732
|
DropdownMenuPrimitive.Separator,
|
|
587
733
|
{
|
|
588
734
|
ref,
|
|
@@ -595,7 +741,7 @@ var DropdownMenuShortcut = ({
|
|
|
595
741
|
className,
|
|
596
742
|
...props
|
|
597
743
|
}) => {
|
|
598
|
-
return /* @__PURE__ */
|
|
744
|
+
return /* @__PURE__ */ jsx6(
|
|
599
745
|
"span",
|
|
600
746
|
{
|
|
601
747
|
className: cn("ml-auto text-xs tracking-widest text-ods-text-secondary opacity-60", className),
|
|
@@ -605,13 +751,161 @@ var DropdownMenuShortcut = ({
|
|
|
605
751
|
};
|
|
606
752
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
607
753
|
|
|
754
|
+
// src/components/ui/skeleton.tsx
|
|
755
|
+
init_cn();
|
|
756
|
+
import * as React8 from "react";
|
|
757
|
+
import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
758
|
+
var Skeleton = React8.forwardRef(
|
|
759
|
+
({ className, ...props }, ref) => {
|
|
760
|
+
return /* @__PURE__ */ jsx7(
|
|
761
|
+
"div",
|
|
762
|
+
{
|
|
763
|
+
ref,
|
|
764
|
+
className: cn(
|
|
765
|
+
"animate-pulse rounded-md bg-ods-border",
|
|
766
|
+
className
|
|
767
|
+
),
|
|
768
|
+
...props
|
|
769
|
+
}
|
|
770
|
+
);
|
|
771
|
+
}
|
|
772
|
+
);
|
|
773
|
+
Skeleton.displayName = "Skeleton";
|
|
774
|
+
var SkeletonText = React8.forwardRef(
|
|
775
|
+
({ lines = 1, className, ...props }, ref) => {
|
|
776
|
+
return /* @__PURE__ */ jsx7("div", { ref, className: cn("space-y-2", className), ...props, children: Array.from({ length: lines }).map((_, i) => /* @__PURE__ */ jsx7(
|
|
777
|
+
Skeleton,
|
|
778
|
+
{
|
|
779
|
+
className: cn(
|
|
780
|
+
"h-4",
|
|
781
|
+
i === lines - 1 && lines > 1 && "w-3/4"
|
|
782
|
+
// Last line shorter for multi-line
|
|
783
|
+
)
|
|
784
|
+
},
|
|
785
|
+
i
|
|
786
|
+
)) });
|
|
787
|
+
}
|
|
788
|
+
);
|
|
789
|
+
SkeletonText.displayName = "SkeletonText";
|
|
790
|
+
var SkeletonCard = React8.forwardRef(
|
|
791
|
+
({ showImage = false, className, ...props }, ref) => {
|
|
792
|
+
return /* @__PURE__ */ jsxs6(
|
|
793
|
+
"div",
|
|
794
|
+
{
|
|
795
|
+
ref,
|
|
796
|
+
className: cn(
|
|
797
|
+
"rounded-lg border border-ods-border overflow-hidden",
|
|
798
|
+
className
|
|
799
|
+
),
|
|
800
|
+
...props,
|
|
801
|
+
children: [
|
|
802
|
+
showImage && /* @__PURE__ */ jsx7(Skeleton, { className: "h-48 w-full" }),
|
|
803
|
+
/* @__PURE__ */ jsxs6("div", { className: "p-6", children: [
|
|
804
|
+
/* @__PURE__ */ jsx7(Skeleton, { className: "h-6 w-3/4 mb-4" }),
|
|
805
|
+
/* @__PURE__ */ jsx7(SkeletonText, { lines: 3 })
|
|
806
|
+
] })
|
|
807
|
+
]
|
|
808
|
+
}
|
|
809
|
+
);
|
|
810
|
+
}
|
|
811
|
+
);
|
|
812
|
+
SkeletonCard.displayName = "SkeletonCard";
|
|
813
|
+
var SkeletonGrid = React8.forwardRef(
|
|
814
|
+
({ columns = 3, items = 6, showImages = false, className, ...props }, ref) => {
|
|
815
|
+
return /* @__PURE__ */ jsx7(
|
|
816
|
+
"div",
|
|
817
|
+
{
|
|
818
|
+
ref,
|
|
819
|
+
className: cn(
|
|
820
|
+
`grid grid-cols-1 gap-6`,
|
|
821
|
+
columns === 2 && "md:grid-cols-2",
|
|
822
|
+
columns === 3 && "md:grid-cols-3",
|
|
823
|
+
columns === 4 && "md:grid-cols-4",
|
|
824
|
+
className
|
|
825
|
+
),
|
|
826
|
+
...props,
|
|
827
|
+
children: Array.from({ length: items }).map((_, i) => /* @__PURE__ */ jsx7(SkeletonCard, { showImage: showImages }, i))
|
|
828
|
+
}
|
|
829
|
+
);
|
|
830
|
+
}
|
|
831
|
+
);
|
|
832
|
+
SkeletonGrid.displayName = "SkeletonGrid";
|
|
833
|
+
var SkeletonButton = React8.forwardRef(
|
|
834
|
+
({ size = "default", className, ...props }, ref) => {
|
|
835
|
+
const sizeClasses = {
|
|
836
|
+
sm: "h-8 w-20",
|
|
837
|
+
default: "h-10 w-32",
|
|
838
|
+
lg: "h-12 w-40"
|
|
839
|
+
};
|
|
840
|
+
return /* @__PURE__ */ jsx7(
|
|
841
|
+
Skeleton,
|
|
842
|
+
{
|
|
843
|
+
ref,
|
|
844
|
+
className: cn(
|
|
845
|
+
"rounded-lg",
|
|
846
|
+
sizeClasses[size],
|
|
847
|
+
className
|
|
848
|
+
),
|
|
849
|
+
...props
|
|
850
|
+
}
|
|
851
|
+
);
|
|
852
|
+
}
|
|
853
|
+
);
|
|
854
|
+
SkeletonButton.displayName = "SkeletonButton";
|
|
855
|
+
var SkeletonHeading = React8.forwardRef(
|
|
856
|
+
({ level = 1, className, ...props }, ref) => {
|
|
857
|
+
const heightClasses = {
|
|
858
|
+
1: "h-12",
|
|
859
|
+
2: "h-10",
|
|
860
|
+
3: "h-8",
|
|
861
|
+
4: "h-7",
|
|
862
|
+
5: "h-6",
|
|
863
|
+
6: "h-5"
|
|
864
|
+
};
|
|
865
|
+
return /* @__PURE__ */ jsx7(
|
|
866
|
+
Skeleton,
|
|
867
|
+
{
|
|
868
|
+
ref,
|
|
869
|
+
className: cn(
|
|
870
|
+
heightClasses[level],
|
|
871
|
+
"w-3/4",
|
|
872
|
+
className
|
|
873
|
+
),
|
|
874
|
+
...props
|
|
875
|
+
}
|
|
876
|
+
);
|
|
877
|
+
}
|
|
878
|
+
);
|
|
879
|
+
SkeletonHeading.displayName = "SkeletonHeading";
|
|
880
|
+
var SkeletonList = React8.forwardRef(
|
|
881
|
+
({ items = 5, className, ...props }, ref) => {
|
|
882
|
+
return /* @__PURE__ */ jsx7("div", { ref, className: cn("space-y-3", className), ...props, children: Array.from({ length: items }).map((_, i) => /* @__PURE__ */ jsxs6("div", { className: "flex items-center gap-3", children: [
|
|
883
|
+
/* @__PURE__ */ jsx7(Skeleton, { className: "h-10 w-10 rounded-full flex-shrink-0" }),
|
|
884
|
+
/* @__PURE__ */ jsxs6("div", { className: "flex-1", children: [
|
|
885
|
+
/* @__PURE__ */ jsx7(Skeleton, { className: "h-4 w-1/3 mb-1" }),
|
|
886
|
+
/* @__PURE__ */ jsx7(Skeleton, { className: "h-3 w-1/2" })
|
|
887
|
+
] })
|
|
888
|
+
] }, i)) });
|
|
889
|
+
}
|
|
890
|
+
);
|
|
891
|
+
SkeletonList.displayName = "SkeletonList";
|
|
892
|
+
var SkeletonNavigation = React8.forwardRef(
|
|
893
|
+
({ items = 6, className, ...props }, ref) => {
|
|
894
|
+
return /* @__PURE__ */ jsx7("div", { ref, className: cn("flex items-center gap-6", className), ...props, children: Array.from({ length: items }).map((_, i) => /* @__PURE__ */ jsx7(Skeleton, { className: "h-5 w-20" }, i)) });
|
|
895
|
+
}
|
|
896
|
+
);
|
|
897
|
+
SkeletonNavigation.displayName = "SkeletonNavigation";
|
|
898
|
+
|
|
608
899
|
export {
|
|
900
|
+
FieldWrapper,
|
|
901
|
+
Input,
|
|
609
902
|
buttonVariants,
|
|
610
903
|
Button,
|
|
611
904
|
init_button,
|
|
612
905
|
SplitButton,
|
|
613
906
|
init_split_button,
|
|
614
907
|
init_button2,
|
|
908
|
+
Checkbox,
|
|
615
909
|
PortalContainerContext,
|
|
616
910
|
usePortalContainer,
|
|
617
911
|
DropdownMenu,
|
|
@@ -628,6 +922,14 @@ export {
|
|
|
628
922
|
DropdownMenuRadioItem,
|
|
629
923
|
DropdownMenuLabel,
|
|
630
924
|
DropdownMenuSeparator,
|
|
631
|
-
DropdownMenuShortcut
|
|
925
|
+
DropdownMenuShortcut,
|
|
926
|
+
Skeleton,
|
|
927
|
+
SkeletonText,
|
|
928
|
+
SkeletonCard,
|
|
929
|
+
SkeletonGrid,
|
|
930
|
+
SkeletonButton,
|
|
931
|
+
SkeletonHeading,
|
|
932
|
+
SkeletonList,
|
|
933
|
+
SkeletonNavigation
|
|
632
934
|
};
|
|
633
|
-
//# sourceMappingURL=chunk-
|
|
935
|
+
//# sourceMappingURL=chunk-JALO4TAZ.js.map
|