@flamingo-stack/openframe-frontend-core 0.0.510 → 0.0.512-1640.4207.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-J2JUAS4C.cjs → chunk-24FYTTPB.cjs} +11 -11
- package/dist/{chunk-J2JUAS4C.cjs.map → chunk-24FYTTPB.cjs.map} +1 -1
- package/dist/{chunk-GE3JUTW2.js → chunk-27OKD7ZV.js} +44 -14
- package/dist/chunk-27OKD7ZV.js.map +1 -0
- package/dist/{chunk-SRYV4H3M.js → chunk-2SSVGMTE.js} +3 -3
- package/dist/{chunk-2AASLY6D.js → chunk-3KAZSJ2I.js} +3 -3
- package/dist/{chunk-Q4K3TGNP.cjs → chunk-3NECEXDF.cjs} +74 -44
- package/dist/chunk-3NECEXDF.cjs.map +1 -0
- package/dist/{chunk-5CDPRCPS.cjs → chunk-44ML4VMJ.cjs} +23 -23
- package/dist/{chunk-5CDPRCPS.cjs.map → chunk-44ML4VMJ.cjs.map} +1 -1
- package/dist/{chunk-WSAPKKDU.cjs → chunk-4NML2ZGN.cjs} +9 -9
- package/dist/{chunk-WSAPKKDU.cjs.map → chunk-4NML2ZGN.cjs.map} +1 -1
- package/dist/{chunk-SYZFFRVD.cjs → chunk-5BAGE7AI.cjs} +13 -13
- package/dist/{chunk-SYZFFRVD.cjs.map → chunk-5BAGE7AI.cjs.map} +1 -1
- package/dist/{chunk-HX4CJYXL.js → chunk-5MC7ZKRX.js} +10 -10
- package/dist/{chunk-RHQ7BJKK.cjs → chunk-6I36GENY.cjs} +73 -73
- package/dist/{chunk-RHQ7BJKK.cjs.map → chunk-6I36GENY.cjs.map} +1 -1
- package/dist/{chunk-6FIDTXYC.js → chunk-7AQSXQEL.js} +3 -3
- package/dist/{chunk-EJ3EBYNV.cjs → chunk-AF2PYDNF.cjs} +32 -32
- package/dist/{chunk-EJ3EBYNV.cjs.map → chunk-AF2PYDNF.cjs.map} +1 -1
- package/dist/{chunk-2RLI5XVI.cjs → chunk-B2PCKLRF.cjs} +16 -16
- package/dist/{chunk-2RLI5XVI.cjs.map → chunk-B2PCKLRF.cjs.map} +1 -1
- package/dist/{chunk-Z35QWWJH.cjs → chunk-BQFMSIXM.cjs} +34 -34
- package/dist/{chunk-Z35QWWJH.cjs.map → chunk-BQFMSIXM.cjs.map} +1 -1
- package/dist/{chunk-6TL5XIAW.cjs → chunk-CS2MLJXE.cjs} +119 -119
- package/dist/{chunk-6TL5XIAW.cjs.map → chunk-CS2MLJXE.cjs.map} +1 -1
- package/dist/{chunk-JMBIGH4H.cjs → chunk-DON2EEFT.cjs} +83 -83
- package/dist/{chunk-JMBIGH4H.cjs.map → chunk-DON2EEFT.cjs.map} +1 -1
- package/dist/{chunk-RJ3D3PE2.cjs → chunk-DZR4XHZH.cjs} +9 -9
- package/dist/{chunk-RJ3D3PE2.cjs.map → chunk-DZR4XHZH.cjs.map} +1 -1
- package/dist/{chunk-UWPT23SA.js → chunk-EFTTERZ5.js} +3 -3
- package/dist/{chunk-BTUHMCYW.js → chunk-FS3YSNSU.js} +193 -6
- package/dist/chunk-FS3YSNSU.js.map +1 -0
- package/dist/{chunk-7VUKIWF6.cjs → chunk-HIV2GIFP.cjs} +3 -3
- package/dist/{chunk-7VUKIWF6.cjs.map → chunk-HIV2GIFP.cjs.map} +1 -1
- package/dist/{chunk-5AZZQQYS.cjs → chunk-HKRLXUU6.cjs} +40 -40
- package/dist/{chunk-5AZZQQYS.cjs.map → chunk-HKRLXUU6.cjs.map} +1 -1
- package/dist/{chunk-WNOGR5AA.js → chunk-IG3PRDHZ.js} +3 -3
- package/dist/{chunk-R4HKB3YD.cjs → chunk-IIPBTWQR.cjs} +22 -22
- package/dist/{chunk-R4HKB3YD.cjs.map → chunk-IIPBTWQR.cjs.map} +1 -1
- package/dist/{chunk-XJVRAKEX.cjs → chunk-K6E2VQ4W.cjs} +56 -33
- package/dist/chunk-K6E2VQ4W.cjs.map +1 -0
- package/dist/{chunk-A62C4C4V.cjs → chunk-KI4EGKNV.cjs} +3 -2
- package/dist/chunk-KI4EGKNV.cjs.map +1 -0
- package/dist/{chunk-RB2EW6IZ.cjs → chunk-LCWCUFJJ.cjs} +3351 -3173
- package/dist/chunk-LCWCUFJJ.cjs.map +1 -0
- package/dist/{chunk-OB7YDOTK.cjs → chunk-NJADHL2G.cjs} +8 -8
- package/dist/{chunk-OB7YDOTK.cjs.map → chunk-NJADHL2G.cjs.map} +1 -1
- package/dist/{chunk-53JKCFFE.cjs → chunk-O37MV2JA.cjs} +12 -12
- package/dist/{chunk-53JKCFFE.cjs.map → chunk-O37MV2JA.cjs.map} +1 -1
- package/dist/{chunk-EYTXD62B.cjs → chunk-OGVIGAMZ.cjs} +232 -45
- package/dist/chunk-OGVIGAMZ.cjs.map +1 -0
- package/dist/{chunk-JOCFPAS6.js → chunk-OY6M4LX4.js} +6 -6
- package/dist/{chunk-HCZJZMU7.js → chunk-P5KFFOLJ.js} +3 -3
- package/dist/{chunk-FEGEC6FY.js → chunk-SQJXVADG.js} +5292 -5114
- package/dist/chunk-SQJXVADG.js.map +1 -0
- package/dist/{chunk-M4MKQKFF.js → chunk-UBTOOE55.js} +2 -2
- package/dist/{chunk-CTMLY2GN.js → chunk-UGOCHX36.js} +5 -5
- package/dist/{chunk-VDJF4ZAU.js → chunk-UGR7V2ZG.js} +3 -3
- package/dist/{chunk-TBGSQTJK.js → chunk-W2HEWV34.js} +6 -6
- package/dist/{chunk-LBOWSKGM.js → chunk-XE3OSQNH.js} +5 -5
- package/dist/{chunk-MLGGF24T.js → chunk-XRGYYEIX.js} +8 -8
- package/dist/{chunk-SZMA65OW.js → chunk-XURRAFIB.js} +2 -2
- package/dist/{chunk-DBR5JLX3.js → chunk-YNBRXJWC.js} +46 -23
- package/dist/chunk-YNBRXJWC.js.map +1 -0
- package/dist/{chunk-RG2WRBPT.js → chunk-Z3ADCYC5.js} +2 -2
- package/dist/{chunk-4GPWLGKT.js → chunk-ZRILYK5U.js} +2 -1
- package/dist/components/calendar.cjs +4 -4
- package/dist/components/calendar.js +3 -3
- package/dist/components/case-studies/index.cjs +17 -17
- package/dist/components/case-studies/index.js +7 -7
- package/dist/components/chat/chat-message-enhanced.d.ts.map +1 -1
- package/dist/components/chat/chat-message-list.d.ts.map +1 -1
- package/dist/components/chat/entity-cards/dispatch.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-chat.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +13 -7
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.js +12 -6
- package/dist/components/chat/remark-mention-chips.d.ts +5 -2
- package/dist/components/chat/remark-mention-chips.d.ts.map +1 -1
- package/dist/components/chat/utils/discuss-ref-prompt.d.ts +48 -0
- package/dist/components/chat/utils/discuss-ref-prompt.d.ts.map +1 -0
- package/dist/components/chat/utils/index.d.ts +2 -0
- package/dist/components/chat/utils/index.d.ts.map +1 -1
- package/dist/components/chat/utils/resolve-fetched-card-href.d.ts +63 -0
- package/dist/components/chat/utils/resolve-fetched-card-href.d.ts.map +1 -0
- package/dist/components/chat/utils/source-row-cta.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +8 -8
- package/dist/components/contact/index.js +7 -7
- package/dist/components/docs/index.cjs +10 -10
- package/dist/components/docs/index.js +9 -9
- package/dist/components/embeds/index.cjs +8 -8
- package/dist/components/embeds/index.js +7 -7
- package/dist/components/faq/index.cjs +9 -9
- package/dist/components/faq/index.js +8 -8
- package/dist/components/features/index.cjs +7 -7
- package/dist/components/features/index.js +6 -6
- package/dist/components/help-center-pages/index.cjs +28 -28
- package/dist/components/help-center-pages/index.js +19 -19
- package/dist/components/icons/index.cjs +3 -3
- package/dist/components/icons/index.js +2 -2
- package/dist/components/index.cjs +253 -247
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +23 -17
- package/dist/components/index.js.map +1 -1
- package/dist/components/meeting-scheduler/index.cjs +92 -92
- package/dist/components/meeting-scheduler/index.js +9 -9
- package/dist/components/navigation/index.cjs +7 -7
- package/dist/components/navigation/index.js +6 -6
- package/dist/components/onboarding-guides/index.cjs +11 -11
- package/dist/components/onboarding-guides/index.js +10 -10
- package/dist/components/related-content/index.cjs +9 -9
- package/dist/components/related-content/index.js +8 -8
- package/dist/components/shared/doc-search/resolve-search-result-action.d.ts +11 -3
- package/dist/components/shared/doc-search/resolve-search-result-action.d.ts.map +1 -1
- package/dist/components/shared/doc-search/use-doc-search.d.ts +7 -0
- package/dist/components/shared/doc-search/use-doc-search.d.ts.map +1 -1
- package/dist/components/tickets/index.cjs +11 -11
- package/dist/components/tickets/index.js +10 -10
- package/dist/components/ui/actions-menu.d.ts.map +1 -1
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/components/ui/file-manager/index.cjs +70 -70
- package/dist/components/ui/file-manager/index.js +3 -3
- package/dist/components/ui/index.cjs +13 -7
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +12 -6
- package/dist/components/ui/markdown/base-components.d.ts.map +1 -1
- package/dist/components/ui/overlay-open-registry.d.ts +50 -0
- package/dist/components/ui/overlay-open-registry.d.ts.map +1 -0
- package/dist/components/ui/portal-container.d.ts +24 -0
- package/dist/components/ui/portal-container.d.ts.map +1 -1
- package/dist/hooks/index.cjs +4 -4
- package/dist/hooks/index.js +3 -3
- package/dist/index.cjs +20 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +24 -14
- package/dist/utils/anchor-id.d.ts +32 -0
- package/dist/utils/anchor-id.d.ts.map +1 -0
- package/dist/utils/content-href.d.ts +27 -6
- package/dist/utils/content-href.d.ts.map +1 -1
- package/dist/utils/index.cjs +213 -152
- 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 +212 -153
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/list-url.d.ts.map +1 -1
- package/dist/utils/same-page-hash-nav.d.ts +17 -6
- package/dist/utils/same-page-hash-nav.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/chat/__tests__/remark-mention-chips.test.ts +67 -0
- package/src/components/chat/chat-message-enhanced.tsx +3 -2
- package/src/components/chat/chat-message-list.tsx +49 -5
- package/src/components/chat/embeddable-chat.tsx +19 -2
- package/src/components/chat/entity-cards/dispatch.tsx +65 -4
- package/src/components/chat/hooks/use-chat.ts +174 -15
- package/src/components/chat/hooks/use-nats-chat-adapter.ts +28 -4
- package/src/components/chat/hooks/use-sse-chat-adapter.ts +5 -3
- package/src/components/chat/remark-mention-chips.ts +6 -3
- package/src/components/chat/utils/__tests__/discuss-ref-prompt.test.ts +67 -0
- package/src/components/chat/utils/__tests__/resolve-fetched-card-href.test.ts +156 -0
- package/src/components/chat/utils/discuss-ref-prompt.ts +63 -0
- package/src/components/chat/utils/index.ts +16 -0
- package/src/components/chat/utils/resolve-fetched-card-href.ts +104 -0
- package/src/components/chat/utils/source-row-cta.ts +5 -1
- package/src/components/shared/doc-search/__tests__/resolve-search-result-action.test.ts +145 -0
- package/src/components/shared/doc-search/resolve-search-result-action.ts +46 -10
- package/src/components/shared/doc-search/use-doc-search.ts +50 -14
- package/src/components/ui/__tests__/overlay-open-registry.test.tsx +87 -0
- package/src/components/ui/actions-menu.tsx +65 -2
- package/src/components/ui/dropdown-menu.tsx +62 -12
- package/src/components/ui/markdown/base-components.tsx +26 -0
- package/src/components/ui/overlay-open-registry.tsx +99 -0
- package/src/components/ui/portal-container.tsx +31 -0
- package/src/utils/__tests__/anchor-id.test.ts +139 -0
- package/src/utils/__tests__/content-href.test.ts +74 -0
- package/src/utils/__tests__/list-url.test.ts +11 -1
- package/src/utils/anchor-id.ts +106 -0
- package/src/utils/content-href.ts +113 -13
- package/src/utils/index.ts +8 -0
- package/src/utils/list-url.ts +6 -1
- package/src/utils/same-page-hash-nav.ts +28 -9
- package/dist/chunk-A62C4C4V.cjs.map +0 -1
- package/dist/chunk-BTUHMCYW.js.map +0 -1
- package/dist/chunk-DBR5JLX3.js.map +0 -1
- package/dist/chunk-EYTXD62B.cjs.map +0 -1
- package/dist/chunk-FEGEC6FY.js.map +0 -1
- package/dist/chunk-GE3JUTW2.js.map +0 -1
- package/dist/chunk-Q4K3TGNP.cjs.map +0 -1
- package/dist/chunk-RB2EW6IZ.cjs.map +0 -1
- package/dist/chunk-XJVRAKEX.cjs.map +0 -1
- /package/dist/{chunk-SRYV4H3M.js.map → chunk-2SSVGMTE.js.map} +0 -0
- /package/dist/{chunk-2AASLY6D.js.map → chunk-3KAZSJ2I.js.map} +0 -0
- /package/dist/{chunk-HX4CJYXL.js.map → chunk-5MC7ZKRX.js.map} +0 -0
- /package/dist/{chunk-6FIDTXYC.js.map → chunk-7AQSXQEL.js.map} +0 -0
- /package/dist/{chunk-UWPT23SA.js.map → chunk-EFTTERZ5.js.map} +0 -0
- /package/dist/{chunk-WNOGR5AA.js.map → chunk-IG3PRDHZ.js.map} +0 -0
- /package/dist/{chunk-JOCFPAS6.js.map → chunk-OY6M4LX4.js.map} +0 -0
- /package/dist/{chunk-HCZJZMU7.js.map → chunk-P5KFFOLJ.js.map} +0 -0
- /package/dist/{chunk-M4MKQKFF.js.map → chunk-UBTOOE55.js.map} +0 -0
- /package/dist/{chunk-CTMLY2GN.js.map → chunk-UGOCHX36.js.map} +0 -0
- /package/dist/{chunk-VDJF4ZAU.js.map → chunk-UGR7V2ZG.js.map} +0 -0
- /package/dist/{chunk-TBGSQTJK.js.map → chunk-W2HEWV34.js.map} +0 -0
- /package/dist/{chunk-LBOWSKGM.js.map → chunk-XE3OSQNH.js.map} +0 -0
- /package/dist/{chunk-MLGGF24T.js.map → chunk-XRGYYEIX.js.map} +0 -0
- /package/dist/{chunk-SZMA65OW.js.map → chunk-XURRAFIB.js.map} +0 -0
- /package/dist/{chunk-RG2WRBPT.js.map → chunk-Z3ADCYC5.js.map} +0 -0
- /package/dist/{chunk-4GPWLGKT.js.map → chunk-ZRILYK5U.js.map} +0 -0
|
@@ -5,10 +5,10 @@ var _chunkWZW7C7TFcjs = require('./chunk-WZW7C7TF.cjs');
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _chunkKI4EGKNVcjs = require('./chunk-KI4EGKNV.cjs');
|
|
9
9
|
|
|
10
10
|
// src/components/ui/field-wrapper.tsx
|
|
11
|
-
|
|
11
|
+
_chunkKI4EGKNVcjs.init_cn.call(void 0, );
|
|
12
12
|
var _react = require('react'); var React = _interopRequireWildcard(_react); var React2 = _interopRequireWildcard(_react); var React3 = _interopRequireWildcard(_react); var React5 = _interopRequireWildcard(_react); var React4 = _interopRequireWildcard(_react); var React6 = _interopRequireWildcard(_react);
|
|
13
13
|
var _jsxruntime = require('react/jsx-runtime');
|
|
14
14
|
var errorVariantClasses = {
|
|
@@ -20,17 +20,17 @@ var errorVariantClasses = {
|
|
|
20
20
|
var FieldWrapper = React.forwardRef(
|
|
21
21
|
({ label, error, errorVariant = "error", className, children }, ref) => {
|
|
22
22
|
const hasChrome = label != null || error != null;
|
|
23
|
-
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref, className:
|
|
23
|
+
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref, className: _chunkKI4EGKNVcjs.cn.call(void 0, hasChrome ? "relative flex w-full flex-col" : "contents", className), children: [
|
|
24
24
|
label && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "label", { className: "text-h4 text-ods-text-primary mb-1", children: label }),
|
|
25
25
|
children,
|
|
26
|
-
error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className:
|
|
26
|
+
error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: _chunkKI4EGKNVcjs.cn.call(void 0, "absolute bottom-0 left-0 right-0 translate-y-full text-h6 truncate", errorVariantClasses[errorVariant]), title: error, children: error })
|
|
27
27
|
] });
|
|
28
28
|
}
|
|
29
29
|
);
|
|
30
30
|
FieldWrapper.displayName = "FieldWrapper";
|
|
31
31
|
|
|
32
32
|
// src/components/ui/input.tsx
|
|
33
|
-
|
|
33
|
+
_chunkKI4EGKNVcjs.init_cn.call(void 0, );
|
|
34
34
|
|
|
35
35
|
var _lucidereact = require('lucide-react');
|
|
36
36
|
|
|
@@ -47,7 +47,7 @@ var Input = React2.forwardRef(
|
|
|
47
47
|
"input",
|
|
48
48
|
{
|
|
49
49
|
type: "range",
|
|
50
|
-
className:
|
|
50
|
+
className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
51
51
|
"w-full cursor-pointer appearance-none rounded-full bg-white/30 h-1",
|
|
52
52
|
// Webkit (Chrome/Safari) thumb
|
|
53
53
|
"[&::-webkit-slider-thumb]:appearance-none",
|
|
@@ -74,7 +74,7 @@ var Input = React2.forwardRef(
|
|
|
74
74
|
"label",
|
|
75
75
|
{
|
|
76
76
|
"data-invalid": isInvalid || void 0,
|
|
77
|
-
className:
|
|
77
|
+
className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
78
78
|
// Layout & spacing
|
|
79
79
|
"flex w-full items-center gap-2 rounded-[6px] border px-3 h-11 md:h-12 cursor-text",
|
|
80
80
|
// Focus-within states
|
|
@@ -105,7 +105,7 @@ var Input = React2.forwardRef(
|
|
|
105
105
|
"input",
|
|
106
106
|
{
|
|
107
107
|
type,
|
|
108
|
-
className:
|
|
108
|
+
className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
109
109
|
// Layout
|
|
110
110
|
"flex-1 min-w-0 bg-transparent border-none outline-none",
|
|
111
111
|
// Typography
|
|
@@ -136,7 +136,7 @@ var Input = React2.forwardRef(
|
|
|
136
136
|
Input.displayName = "Input";
|
|
137
137
|
|
|
138
138
|
// src/components/ui/checkbox.tsx
|
|
139
|
-
|
|
139
|
+
_chunkKI4EGKNVcjs.init_cn.call(void 0, );
|
|
140
140
|
|
|
141
141
|
var _reactcheckbox = require('@radix-ui/react-checkbox'); var CheckboxPrimitive = _interopRequireWildcard(_reactcheckbox);
|
|
142
142
|
|
|
@@ -144,7 +144,7 @@ var Checkbox = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
144
144
|
CheckboxPrimitive.Root,
|
|
145
145
|
{
|
|
146
146
|
ref,
|
|
147
|
-
className:
|
|
147
|
+
className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
148
148
|
"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",
|
|
149
149
|
className
|
|
150
150
|
),
|
|
@@ -152,7 +152,7 @@ var Checkbox = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
152
152
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
153
153
|
CheckboxPrimitive.Indicator,
|
|
154
154
|
{
|
|
155
|
-
className:
|
|
155
|
+
className: _chunkKI4EGKNVcjs.cn.call(void 0, "flex items-center justify-center text-ods-text-on-accent"),
|
|
156
156
|
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkWZW7C7TFcjs.CheckboxCheckmarkIcon, { size: 10 })
|
|
157
157
|
}
|
|
158
158
|
)
|
|
@@ -161,7 +161,7 @@ var Checkbox = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
161
161
|
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
162
162
|
|
|
163
163
|
// src/components/ui/dropdown-menu.tsx
|
|
164
|
-
|
|
164
|
+
_chunkKI4EGKNVcjs.init_cn.call(void 0, );
|
|
165
165
|
|
|
166
166
|
var _reactdropdownmenu = require('@radix-ui/react-dropdown-menu'); var DropdownMenuPrimitive = _interopRequireWildcard(_reactdropdownmenu);
|
|
167
167
|
|
|
@@ -174,6 +174,13 @@ var PortalContainerContext = React4.createContext(
|
|
|
174
174
|
function usePortalContainer() {
|
|
175
175
|
return React4.useContext(PortalContainerContext);
|
|
176
176
|
}
|
|
177
|
+
var CollisionBoundaryContext = React4.createContext(
|
|
178
|
+
null
|
|
179
|
+
);
|
|
180
|
+
function useCollisionBoundary() {
|
|
181
|
+
return React4.useContext(CollisionBoundaryContext);
|
|
182
|
+
}
|
|
183
|
+
var COLLISION_PADDING_PX = 8;
|
|
177
184
|
|
|
178
185
|
// src/components/ui/dropdown-menu.tsx
|
|
179
186
|
|
|
@@ -187,7 +194,7 @@ var DropdownMenuSubTrigger = React5.forwardRef(({ className, inset, children, ..
|
|
|
187
194
|
DropdownMenuPrimitive.SubTrigger,
|
|
188
195
|
{
|
|
189
196
|
ref,
|
|
190
|
-
className:
|
|
197
|
+
className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
191
198
|
"flex cursor-pointer gap-2 select-none items-center rounded-sm px-2 py-1.5 text-h6 outline-none hover:bg-ods-bg-hover focus:bg-ods-bg-hover data-[state=open]:bg-ods-bg-hover [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
192
199
|
inset && "pl-8",
|
|
193
200
|
className
|
|
@@ -200,26 +207,46 @@ var DropdownMenuSubTrigger = React5.forwardRef(({ className, inset, children, ..
|
|
|
200
207
|
}
|
|
201
208
|
));
|
|
202
209
|
DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
|
|
203
|
-
var DropdownMenuSubContent = React5.forwardRef(({ className, ...props }, ref) =>
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
))
|
|
210
|
+
var DropdownMenuSubContent = React5.forwardRef(({ className, collisionBoundary, collisionPadding, hideWhenDetached, ...props }, ref) => {
|
|
211
|
+
const container = usePortalContainer();
|
|
212
|
+
const boundary = useCollisionBoundary();
|
|
213
|
+
const resolvedBoundary = _nullishCoalesce(_nullishCoalesce(collisionBoundary, () => ( boundary)), () => ( void 0));
|
|
214
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DropdownMenuPrimitive.Portal, { container: _nullishCoalesce(container, () => ( void 0)), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
215
|
+
DropdownMenuPrimitive.SubContent,
|
|
216
|
+
{
|
|
217
|
+
ref,
|
|
218
|
+
collisionBoundary: resolvedBoundary,
|
|
219
|
+
collisionPadding: _nullishCoalesce(collisionPadding, () => ( (resolvedBoundary ? COLLISION_PADDING_PX : void 0))),
|
|
220
|
+
hideWhenDetached: _nullishCoalesce(hideWhenDetached, () => ( (resolvedBoundary ? true : void 0))),
|
|
221
|
+
className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
222
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-md border border-ods-border bg-ods-card p-1 text-ods-text-primary shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
223
|
+
className
|
|
224
|
+
),
|
|
225
|
+
...props
|
|
226
|
+
}
|
|
227
|
+
) });
|
|
228
|
+
});
|
|
214
229
|
DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
|
|
215
|
-
var DropdownMenuContent = React5.forwardRef(({
|
|
230
|
+
var DropdownMenuContent = React5.forwardRef(({
|
|
231
|
+
className,
|
|
232
|
+
sideOffset = 4,
|
|
233
|
+
collisionBoundary,
|
|
234
|
+
collisionPadding,
|
|
235
|
+
hideWhenDetached,
|
|
236
|
+
...props
|
|
237
|
+
}, ref) => {
|
|
216
238
|
const container = usePortalContainer();
|
|
239
|
+
const boundary = useCollisionBoundary();
|
|
240
|
+
const resolvedBoundary = _nullishCoalesce(_nullishCoalesce(collisionBoundary, () => ( boundary)), () => ( void 0));
|
|
217
241
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DropdownMenuPrimitive.Portal, { container: _nullishCoalesce(container, () => ( void 0)), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
218
242
|
DropdownMenuPrimitive.Content,
|
|
219
243
|
{
|
|
220
244
|
ref,
|
|
221
245
|
sideOffset,
|
|
222
|
-
|
|
246
|
+
collisionBoundary: resolvedBoundary,
|
|
247
|
+
collisionPadding: _nullishCoalesce(collisionPadding, () => ( (resolvedBoundary ? COLLISION_PADDING_PX : void 0))),
|
|
248
|
+
hideWhenDetached: _nullishCoalesce(hideWhenDetached, () => ( (resolvedBoundary ? true : void 0))),
|
|
249
|
+
className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
223
250
|
"z-50 min-w-[8rem] overflow-hidden rounded-md border border-ods-border bg-ods-card p-1 text-ods-text-primary shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
224
251
|
className
|
|
225
252
|
),
|
|
@@ -232,7 +259,7 @@ var DropdownMenuItem = React5.forwardRef(({ className, inset, ...props }, ref) =
|
|
|
232
259
|
DropdownMenuPrimitive.Item,
|
|
233
260
|
{
|
|
234
261
|
ref,
|
|
235
|
-
className:
|
|
262
|
+
className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
236
263
|
"relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-h6 outline-none transition-colors text-ods-text-primary hover:bg-ods-bg-hover hover:text-ods-text-primary focus:bg-ods-bg-hover focus:text-ods-text-primary data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
237
264
|
inset && "pl-8",
|
|
238
265
|
className
|
|
@@ -245,7 +272,7 @@ var DropdownMenuCheckboxItem = React5.forwardRef(({ className, children, checked
|
|
|
245
272
|
DropdownMenuPrimitive.CheckboxItem,
|
|
246
273
|
{
|
|
247
274
|
ref,
|
|
248
|
-
className:
|
|
275
|
+
className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
249
276
|
"relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-h6 outline-none transition-colors text-ods-text-primary hover:bg-ods-bg-hover hover:text-ods-text-primary focus:bg-ods-bg-hover focus:text-ods-text-primary data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
250
277
|
className
|
|
251
278
|
),
|
|
@@ -262,7 +289,7 @@ var DropdownMenuRadioItem = React5.forwardRef(({ className, children, ...props }
|
|
|
262
289
|
DropdownMenuPrimitive.RadioItem,
|
|
263
290
|
{
|
|
264
291
|
ref,
|
|
265
|
-
className:
|
|
292
|
+
className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
266
293
|
"relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-h6 outline-none transition-colors text-ods-text-primary hover:bg-ods-bg-hover hover:text-ods-text-primary focus:bg-ods-bg-hover focus:text-ods-text-primary data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
267
294
|
className
|
|
268
295
|
),
|
|
@@ -278,7 +305,7 @@ var DropdownMenuLabel = React5.forwardRef(({ className, inset, ...props }, ref)
|
|
|
278
305
|
DropdownMenuPrimitive.Label,
|
|
279
306
|
{
|
|
280
307
|
ref,
|
|
281
|
-
className:
|
|
308
|
+
className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
282
309
|
"px-2 py-1.5 text-h6 font-semibold text-ods-text-secondary",
|
|
283
310
|
inset && "pl-8",
|
|
284
311
|
className
|
|
@@ -291,7 +318,7 @@ var DropdownMenuSeparator = React5.forwardRef(({ className, ...props }, ref) =>
|
|
|
291
318
|
DropdownMenuPrimitive.Separator,
|
|
292
319
|
{
|
|
293
320
|
ref,
|
|
294
|
-
className:
|
|
321
|
+
className: _chunkKI4EGKNVcjs.cn.call(void 0, "-mx-1 my-1 h-px bg-ods-border", className),
|
|
295
322
|
...props
|
|
296
323
|
}
|
|
297
324
|
));
|
|
@@ -303,7 +330,7 @@ var DropdownMenuShortcut = ({
|
|
|
303
330
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
304
331
|
"span",
|
|
305
332
|
{
|
|
306
|
-
className:
|
|
333
|
+
className: _chunkKI4EGKNVcjs.cn.call(void 0, "ml-auto text-h6 text-ods-text-secondary opacity-60", className),
|
|
307
334
|
...props
|
|
308
335
|
}
|
|
309
336
|
);
|
|
@@ -311,7 +338,7 @@ var DropdownMenuShortcut = ({
|
|
|
311
338
|
DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
|
|
312
339
|
|
|
313
340
|
// src/components/ui/skeleton.tsx
|
|
314
|
-
|
|
341
|
+
_chunkKI4EGKNVcjs.init_cn.call(void 0, );
|
|
315
342
|
|
|
316
343
|
|
|
317
344
|
var Skeleton = React6.forwardRef(
|
|
@@ -320,7 +347,7 @@ var Skeleton = React6.forwardRef(
|
|
|
320
347
|
"div",
|
|
321
348
|
{
|
|
322
349
|
ref,
|
|
323
|
-
className:
|
|
350
|
+
className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
324
351
|
"animate-pulse rounded-md bg-ods-border",
|
|
325
352
|
className
|
|
326
353
|
),
|
|
@@ -332,10 +359,10 @@ var Skeleton = React6.forwardRef(
|
|
|
332
359
|
Skeleton.displayName = "Skeleton";
|
|
333
360
|
var SkeletonText = React6.forwardRef(
|
|
334
361
|
({ lines = 1, className, ...props }, ref) => {
|
|
335
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className:
|
|
362
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunkKI4EGKNVcjs.cn.call(void 0, "space-y-2", className), ...props, children: Array.from({ length: lines }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
336
363
|
Skeleton,
|
|
337
364
|
{
|
|
338
|
-
className:
|
|
365
|
+
className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
339
366
|
"h-4",
|
|
340
367
|
i === lines - 1 && lines > 1 && "w-3/4"
|
|
341
368
|
// Last line shorter for multi-line
|
|
@@ -352,7 +379,7 @@ var SkeletonCard = React6.forwardRef(
|
|
|
352
379
|
"div",
|
|
353
380
|
{
|
|
354
381
|
ref,
|
|
355
|
-
className:
|
|
382
|
+
className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
356
383
|
"rounded-lg border border-ods-border overflow-hidden",
|
|
357
384
|
className
|
|
358
385
|
),
|
|
@@ -375,7 +402,7 @@ var SkeletonGrid = React6.forwardRef(
|
|
|
375
402
|
"div",
|
|
376
403
|
{
|
|
377
404
|
ref,
|
|
378
|
-
className:
|
|
405
|
+
className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
379
406
|
`grid grid-cols-1 gap-6`,
|
|
380
407
|
columns === 2 && "md:grid-cols-2",
|
|
381
408
|
columns === 3 && "md:grid-cols-3",
|
|
@@ -400,7 +427,7 @@ var SkeletonButton = React6.forwardRef(
|
|
|
400
427
|
Skeleton,
|
|
401
428
|
{
|
|
402
429
|
ref,
|
|
403
|
-
className:
|
|
430
|
+
className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
404
431
|
"rounded-lg",
|
|
405
432
|
sizeClasses[size],
|
|
406
433
|
className
|
|
@@ -425,7 +452,7 @@ var SkeletonHeading = React6.forwardRef(
|
|
|
425
452
|
Skeleton,
|
|
426
453
|
{
|
|
427
454
|
ref,
|
|
428
|
-
className:
|
|
455
|
+
className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
429
456
|
heightClasses[level],
|
|
430
457
|
"w-3/4",
|
|
431
458
|
className
|
|
@@ -438,7 +465,7 @@ var SkeletonHeading = React6.forwardRef(
|
|
|
438
465
|
SkeletonHeading.displayName = "SkeletonHeading";
|
|
439
466
|
var SkeletonList = React6.forwardRef(
|
|
440
467
|
({ items = 5, className, ...props }, ref) => {
|
|
441
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className:
|
|
468
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunkKI4EGKNVcjs.cn.call(void 0, "space-y-3", className), ...props, children: Array.from({ length: items }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex items-center gap-3", children: [
|
|
442
469
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, Skeleton, { className: "h-10 w-10 rounded-full flex-shrink-0" }),
|
|
443
470
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex-1", children: [
|
|
444
471
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, Skeleton, { className: "h-4 w-1/3 mb-1" }),
|
|
@@ -450,7 +477,7 @@ var SkeletonList = React6.forwardRef(
|
|
|
450
477
|
SkeletonList.displayName = "SkeletonList";
|
|
451
478
|
var SkeletonNavigation = React6.forwardRef(
|
|
452
479
|
({ items = 6, className, ...props }, ref) => {
|
|
453
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className:
|
|
480
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunkKI4EGKNVcjs.cn.call(void 0, "flex items-center gap-6", className), ...props, children: Array.from({ length: items }).map((_, i) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Skeleton, { className: "h-5 w-20" }, i)) });
|
|
454
481
|
}
|
|
455
482
|
);
|
|
456
483
|
SkeletonNavigation.displayName = "SkeletonNavigation";
|
|
@@ -484,5 +511,8 @@ SkeletonNavigation.displayName = "SkeletonNavigation";
|
|
|
484
511
|
|
|
485
512
|
|
|
486
513
|
|
|
487
|
-
|
|
488
|
-
|
|
514
|
+
|
|
515
|
+
|
|
516
|
+
|
|
517
|
+
exports.FieldWrapper = FieldWrapper; exports.Input = Input; exports.Checkbox = Checkbox; exports.PortalContainerContext = PortalContainerContext; exports.usePortalContainer = usePortalContainer; exports.CollisionBoundaryContext = CollisionBoundaryContext; exports.useCollisionBoundary = useCollisionBoundary; exports.COLLISION_PADDING_PX = COLLISION_PADDING_PX; exports.DropdownMenu = DropdownMenu; exports.DropdownMenuTrigger = DropdownMenuTrigger; exports.DropdownMenuGroup = DropdownMenuGroup; exports.DropdownMenuPortal = DropdownMenuPortal; exports.DropdownMenuSub = DropdownMenuSub; exports.DropdownMenuRadioGroup = DropdownMenuRadioGroup; exports.DropdownMenuSubTrigger = DropdownMenuSubTrigger; exports.DropdownMenuSubContent = DropdownMenuSubContent; exports.DropdownMenuContent = DropdownMenuContent; exports.DropdownMenuItem = DropdownMenuItem; exports.DropdownMenuCheckboxItem = DropdownMenuCheckboxItem; exports.DropdownMenuRadioItem = DropdownMenuRadioItem; exports.DropdownMenuLabel = DropdownMenuLabel; exports.DropdownMenuSeparator = DropdownMenuSeparator; exports.DropdownMenuShortcut = DropdownMenuShortcut; exports.Skeleton = Skeleton; exports.SkeletonText = SkeletonText; exports.SkeletonCard = SkeletonCard; exports.SkeletonGrid = SkeletonGrid; exports.SkeletonButton = SkeletonButton; exports.SkeletonHeading = SkeletonHeading; exports.SkeletonList = SkeletonList; exports.SkeletonNavigation = SkeletonNavigation;
|
|
518
|
+
//# sourceMappingURL=chunk-3NECEXDF.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-3NECEXDF.cjs","../src/components/ui/field-wrapper.tsx","../src/components/ui/input.tsx","../src/components/ui/checkbox.tsx","../src/components/ui/dropdown-menu.tsx","../src/components/ui/portal-container.tsx","../src/components/ui/skeleton.tsx"],"names":["jsx","jsxs"],"mappings":"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","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-3NECEXDF.cjs","sourcesContent":[null,"\"use client\"\n\nimport * as React from \"react\"\nimport { cn } from \"../../utils/cn\"\n\nexport interface FieldWrapperProps {\n /** Label text displayed above the field */\n label?: string\n /**\n * Status message displayed below the field, on ONE line, ellipsized on\n * overflow (full text via the native `title`).\n *\n * It is positioned OUT OF FLOW (absolute, hanging below the wrapper), so it\n * never changes the field's height when it appears — the same treatment\n * `CheckboxBlock` uses. The trade is that it overlaps whatever sits directly\n * below: a form stacking fields needs at least ~20px of vertical gap (e.g.\n * `gap-[var(--spacing-system-lf)]`) for the message to land in clear space.\n */\n error?: string\n /** Color variant for the message: \"error\" (red), \"warning\" (yellow), \"success\" (green) or \"muted\" (grey) */\n errorVariant?: \"error\" | \"warning\" | \"success\" | \"muted\"\n /** Additional className for the outer wrapper */\n className?: string\n children: React.ReactNode\n}\n\nconst errorVariantClasses = {\n error: \"text-ods-error\",\n warning: \"text-ods-warning\",\n success: \"text-ods-success\",\n muted: \"text-ods-text-secondary\",\n} as const\n\nconst FieldWrapper = React.forwardRef<HTMLDivElement, FieldWrapperProps>(\n ({ label, error, errorVariant = \"error\", className, children }, ref) => {\n const hasChrome = label != null || error != null\n\n return (\n <div ref={ref} className={cn(hasChrome ? \"relative flex w-full flex-col\" : \"contents\", className)}>\n {label && (\n <label className=\"text-h4 text-ods-text-primary mb-1\">\n {label}\n </label>\n )}\n {children}\n {error && (\n <p className={cn(\"absolute bottom-0 left-0 right-0 translate-y-full text-h6 truncate\", errorVariantClasses[errorVariant])} title={error}>\n {error}\n </p>\n )}\n </div>\n )\n }\n)\nFieldWrapper.displayName = \"FieldWrapper\"\n\nexport { FieldWrapper }\n","\"use client\"\n\nimport * as React from \"react\";\n\nimport { Loader2 } from \"lucide-react\";\nimport { cn } from \"../../utils/cn\";\nimport { FieldWrapper } from \"./field-wrapper\";\n\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n /** When true, renders error border & ring */\n invalid?: boolean;\n /** Element displayed at the start (left) of the input */\n startAdornment?: React.ReactNode;\n /** Element displayed at the end (right) of the input */\n endAdornment?: React.ReactNode;\n /** Label text displayed above the input */\n label?: string;\n /** Status message displayed below the input */\n error?: string;\n /** Color variant for the message: \"error\" (red), \"warning\" (yellow), \"success\" (green) or \"muted\" (grey).\n Only \"error\" and \"warning\" mark the field invalid (colored border). */\n errorVariant?: \"error\" | \"warning\" | \"success\" | \"muted\";\n /** When true, shows a loading spinner as end adornment */\n loading?: boolean;\n}\n\nconst invalidBorderClasses = {\n error: \"border-ods-error hover:border-ods-error has-[:focus]:border-ods-error\",\n warning: \"!border-ods-warning hover:!border-ods-warning has-[:focus]:!border-ods-warning\",\n} as const;\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, invalid = false, startAdornment, endAdornment, label, error, errorVariant = \"error\", loading = false, ...props }, ref) => {\n // success/muted are informational — they never paint the invalid border\n const variantIsInvalid = errorVariant === \"error\" || errorVariant === \"warning\"\n const isInvalid = invalid || (!!error && variantIsInvalid)\n\n // Range inputs get a clean slider rendering — no label wrapper, borders, or adornments\n if (type === 'range') {\n const rangeInput = (\n <input\n type=\"range\"\n className={cn(\n \"w-full cursor-pointer appearance-none rounded-full bg-white/30 h-1\",\n // Webkit (Chrome/Safari) thumb\n \"[&::-webkit-slider-thumb]:appearance-none\",\n \"[&::-webkit-slider-thumb]:w-3 [&::-webkit-slider-thumb]:h-3\",\n \"[&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-white\",\n \"[&::-webkit-slider-thumb]:cursor-pointer [&::-webkit-slider-thumb]:shadow-sm\",\n // Firefox thumb\n \"[&::-moz-range-thumb]:w-3 [&::-moz-range-thumb]:h-3\",\n \"[&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:bg-white\",\n \"[&::-moz-range-thumb]:border-0 [&::-moz-range-thumb]:cursor-pointer\",\n // Firefox track\n \"[&::-moz-range-track]:bg-transparent\",\n // Disabled\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n return label ? (\n <FieldWrapper label={label} error={error} errorVariant={errorVariant}>\n {rangeInput}\n </FieldWrapper>\n ) : rangeInput\n }\n\n const content = (\n <label\n data-invalid={isInvalid || undefined}\n className={cn(\n // Layout & spacing\n \"flex w-full items-center gap-2 rounded-[6px] border px-3 h-11 md:h-12 cursor-text\",\n // Focus-within states\n \"has-[:focus-visible]:outline-none\",\n \"group\",\n // Animations & touch UX\n \"transition-colors duration-200\",\n // Theme palette\n \"bg-ods-card border-ods-border has-[:focus]:border-ods-accent\",\n // Hover & active (not disabled)\n !props.disabled && \"hover:bg-ods-bg-hover hover:border-ods-border-hover active:bg-ods-bg-active active:border-ods-border-active\",\n // Disabled. The adornments (and any icon inside them) carry their own\n // `text-ods-text-secondary`, so grey them from here — a disabled field\n // must read as one flat colour, not grey text next to a live icon.\n // Scoped to the DIRECT span children (the two adornment wrappers): a\n // descendant rule would also repaint whatever the caller renders INSIDE\n // an adornment, which is passed verbatim precisely so it can own its\n // colour (a `Tag` there went invisible against its own fill).\n props.disabled && \"!cursor-not-allowed bg-ods-bg\",\n \"has-[:disabled]:[&>span]:text-ods-text-disabled has-[:disabled]:[&_svg]:text-ods-text-disabled\",\n // Invalid\n isInvalid && invalidBorderClasses[variantIsInvalid ? (errorVariant as \"error\" | \"warning\") : \"error\"],\n className\n )}\n >\n {startAdornment && (\n <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\">\n {startAdornment}\n </span>\n )}\n <input\n type={type}\n className={cn(\n // Layout\n \"flex-1 min-w-0 bg-transparent border-none outline-none\",\n // Typography\n \"text-h4\",\n // Colors\n \"text-ods-text-primary placeholder:text-ods-text-secondary\",\n // File input adjustments\n \"file:border-0 file:bg-transparent\",\n // Disabled\n \"disabled:cursor-not-allowed disabled:text-ods-text-disabled disabled:placeholder:text-ods-border\",\n // Touch\n \"touch-manipulation\",\n // Autofill override\n \"[&:-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]\"\n )}\n ref={ref}\n {...props}\n />\n {loading && (\n <Loader2 className=\"animate-spin flex-shrink-0 text-ods-text-secondary size-4 md:size-6\" />\n )}\n {!loading && endAdornment && (\n <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\">\n {endAdornment}\n </span>\n )}\n </label>\n )\n\n return (\n <FieldWrapper label={label} error={error} errorVariant={errorVariant}>\n {content}\n </FieldWrapper>\n )\n }\n)\nInput.displayName = \"Input\"\n\nexport { Input };\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\n\nimport { cn } from \"../../utils/cn\"\nimport { CheckboxCheckmarkIcon } from \"../icons-v2-generated/signs-and-symbols/checkbox-checkmark-icon\"\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"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\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"flex items-center justify-center text-ods-text-on-accent\")}\n >\n <CheckboxCheckmarkIcon size={10} />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n))\nCheckbox.displayName = CheckboxPrimitive.Root.displayName\n\nexport { Checkbox }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\n\nimport { cn } from \"../../utils/cn\"\nimport {\n COLLISION_PADDING_PX,\n useCollisionBoundary,\n usePortalContainer,\n} from \"./portal-container\"\n\nconst DropdownMenu = DropdownMenuPrimitive.Root\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-pointer gap-2 select-none items-center rounded-sm px-2 py-1.5 text-h6 outline-none hover:bg-ods-bg-hover focus:bg-ods-bg-hover data-[state=open]:bg-ods-bg-hover [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n))\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, collisionBoundary, collisionPadding, hideWhenDetached, ...props }, ref) => {\n // Same container as the root content — `DropdownMenuContent` portals, and a\n // submenu left un-portaled inherits whatever clipping/stacking context its\n // parent sits in instead of the one the host published. (The hand-rolled\n // submenu in `actions-menu` already portals; this keeps the shared primitive\n // consistent with both.)\n const container = usePortalContainer()\n // Same boundary as the root content — a submenu must not escape the surface\n // its parent menu is confined to.\n const boundary = useCollisionBoundary()\n const resolvedBoundary = collisionBoundary ?? boundary ?? undefined\n return (\n <DropdownMenuPrimitive.Portal container={container ?? undefined}>\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n collisionBoundary={resolvedBoundary}\n collisionPadding={collisionPadding ?? (resolvedBoundary ? COLLISION_PADDING_PX : undefined)}\n // Only defaulted ON where a boundary was published (i.e. inside a panel\n // that owns its menus) — see `DropdownMenuContent`.\n hideWhenDetached={hideWhenDetached ?? (resolvedBoundary ? true : undefined)}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border border-ods-border bg-ods-card p-1 text-ods-text-primary shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n )\n})\nDropdownMenuSubContent.displayName =\n DropdownMenuPrimitive.SubContent.displayName\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({\n className,\n sideOffset = 4,\n collisionBoundary,\n collisionPadding,\n hideWhenDetached,\n ...props\n}, ref) => {\n // Portal into the active container (e.g. a drawer) so the menu inherits its\n // stacking context; falls back to `document.body` when none is provided.\n const container = usePortalContainer()\n // Keep flip/shift inside the surface that owns the menu. Without this Radix\n // collides against the VIEWPORT, so a menu opened near the top of the chat\n // panel grows upward past the panel and lands over the app header. An\n // explicit prop still wins; no provider → viewport, Radix's own default.\n const boundary = useCollisionBoundary()\n const resolvedBoundary = collisionBoundary ?? boundary ?? undefined\n return (\n <DropdownMenuPrimitive.Portal container={container ?? undefined}>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n collisionBoundary={resolvedBoundary}\n collisionPadding={collisionPadding ?? (resolvedBoundary ? COLLISION_PADDING_PX : undefined)}\n // A menu tracks its trigger for as long as it is open. When the trigger\n // scrolls out of its clipping ancestor — a chat card carried away by the\n // thread's auto-scroll while the menu is open — Radix keeps the menu\n // pinned to that off-screen anchor, so it slides to the surface edge and\n // reads as a detached popup floating over unrelated chrome.\n // `hideWhenDetached` makes it disappear with its trigger instead.\n //\n // Defaulted ON only where a boundary was published. This is a SHARED\n // primitive: flipping it on globally would change dismissal behavior for\n // every dropdown in every consumer, and the detached-popup problem it\n // solves is specific to a menu living inside a scrolling panel.\n hideWhenDetached={hideWhenDetached ?? (resolvedBoundary ? true : undefined)}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border border-ods-border bg-ods-card p-1 text-ods-text-primary shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n )\n})\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-h6 outline-none transition-colors text-ods-text-primary hover:bg-ods-bg-hover hover:text-ods-text-primary focus:bg-ods-bg-hover focus:text-ods-text-primary data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n))\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-h6 outline-none transition-colors text-ods-text-primary hover:bg-ods-bg-hover hover:text-ods-text-primary focus:bg-ods-bg-hover focus:text-ods-text-primary data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n))\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-h6 outline-none transition-colors text-ods-text-primary hover:bg-ods-bg-hover hover:text-ods-text-primary focus:bg-ods-bg-hover focus:text-ods-text-primary data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-ods-accent\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n))\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-h6 font-semibold text-ods-text-secondary\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n))\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-ods-border\", className)}\n {...props}\n />\n))\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\"ml-auto text-h6 text-ods-text-secondary opacity-60\", className)}\n {...props}\n />\n )\n}\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\"\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n}\n","'use client'\n\nimport * as React from 'react'\n\n/**\n * The DOM node that Radix overlays (dropdown menus, tooltips) should portal\n * into, instead of the default `document.body`.\n *\n * Portaling to `document.body` lifts content out of every local stacking\n * context, which forces overlays opened *inside* a high-z surface (e.g. the\n * chat drawer) to escalate their own z-index to compete at the document\n * root. Pointing the portal at a node *inside* that surface instead\n * lets the content inherit the surface's stacking context — small, local\n * z-indices then \"just work\" and no escalation is needed. Radix positions\n * content with `strategy: \"fixed\"`, so it still escapes ancestor\n * `overflow: hidden` clipping regardless of where it is portaled.\n *\n * Default `null` → Radix falls back to `document.body` (unchanged behaviour\n * everywhere a provider isn't present).\n */\nexport const PortalContainerContext = React.createContext<HTMLElement | null>(\n null,\n)\n\n/** Read the active portal container (or `null` to use `document.body`). */\nexport function usePortalContainer(): HTMLElement | null {\n return React.useContext(PortalContainerContext)\n}\n\n/**\n * The element Radix overlays should treat as their COLLISION boundary — the\n * surface they must stay inside of.\n *\n * Separate from {@link PortalContainerContext} on purpose: the portal target is\n * a `display: contents` node (no box, so it can't be measured), while a\n * collision boundary must be a real, laid-out element.\n *\n * Why it matters: Radix positions overlays `position: fixed` and, by default,\n * flips/shifts them against the VIEWPORT. A menu opened near the top of a\n * panel therefore happily grows upward past the panel's edge and lands on top\n * of the app header — visually detached from the surface it belongs to. Handing\n * Radix the panel element instead keeps flip/shift (and the\n * `--radix-popper-available-height` a menu sizes itself by) inside that panel.\n *\n * Default `null` → viewport, i.e. Radix's own default, unchanged everywhere a\n * provider isn't present.\n */\nexport const CollisionBoundaryContext = React.createContext<HTMLElement | null>(\n null,\n)\n\n/** Read the active collision boundary (or `null` for the viewport). */\nexport function useCollisionBoundary(): HTMLElement | null {\n return React.useContext(CollisionBoundaryContext)\n}\n\n/** Padding (px) kept between an overlay and its boundary edge. Matches the\n * panel's own gutter so a shifted menu never sits flush against the edge. */\nexport const COLLISION_PADDING_PX = 8\n","\"use client\"\n\nimport * as React from 'react'\nimport { cn } from \"../../utils/cn\"\n\ninterface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string\n}\n\nconst Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n \"animate-pulse rounded-md bg-ods-border\",\n className\n )}\n {...props}\n />\n )\n }\n)\nSkeleton.displayName = 'Skeleton'\n\ninterface SkeletonTextProps extends React.HTMLAttributes<HTMLDivElement> {\n lines?: number\n className?: string\n}\n\nconst SkeletonText = React.forwardRef<HTMLDivElement, SkeletonTextProps>(\n ({ lines = 1, className, ...props }, ref) => {\n return (\n <div ref={ref} className={cn(\"space-y-2\", className)} {...props}>\n {Array.from({ length: lines }).map((_, i) => (\n <Skeleton \n key={i} \n className={cn(\n \"h-4\",\n i === lines - 1 && lines > 1 && \"w-3/4\" // Last line shorter for multi-line\n )} \n />\n ))}\n </div>\n )\n }\n)\nSkeletonText.displayName = 'SkeletonText'\n\ninterface SkeletonCardProps extends React.HTMLAttributes<HTMLDivElement> {\n showImage?: boolean\n className?: string\n}\n\nconst SkeletonCard = React.forwardRef<HTMLDivElement, SkeletonCardProps>(\n ({ showImage = false, className, ...props }, ref) => {\n return (\n <div \n ref={ref}\n className={cn(\n \"rounded-lg border border-ods-border overflow-hidden\",\n className\n )}\n {...props}\n >\n {showImage && (\n <Skeleton className=\"h-48 w-full\" />\n )}\n <div className=\"p-6\">\n <Skeleton className=\"h-6 w-3/4 mb-4\" />\n <SkeletonText lines={3} />\n </div>\n </div>\n )\n }\n)\nSkeletonCard.displayName = 'SkeletonCard'\n\ninterface SkeletonGridProps extends React.HTMLAttributes<HTMLDivElement> {\n columns?: number\n items?: number\n showImages?: boolean\n className?: string\n}\n\nconst SkeletonGrid = React.forwardRef<HTMLDivElement, SkeletonGridProps>(\n ({ columns = 3, items = 6, showImages = false, className, ...props }, ref) => {\n return (\n <div \n ref={ref}\n className={cn(\n `grid grid-cols-1 gap-6`,\n columns === 2 && \"md:grid-cols-2\",\n columns === 3 && \"md:grid-cols-3\",\n columns === 4 && \"md:grid-cols-4\",\n className\n )}\n {...props}\n >\n {Array.from({ length: items }).map((_, i) => (\n <SkeletonCard key={i} showImage={showImages} />\n ))}\n </div>\n )\n }\n)\nSkeletonGrid.displayName = 'SkeletonGrid'\n\ninterface SkeletonButtonProps extends React.HTMLAttributes<HTMLDivElement> {\n size?: 'sm' | 'default' | 'lg'\n className?: string\n}\n\nconst SkeletonButton = React.forwardRef<HTMLDivElement, SkeletonButtonProps>(\n ({ size = 'default', className, ...props }, ref) => {\n const sizeClasses = {\n sm: 'h-8 w-20',\n default: 'h-10 w-32',\n lg: 'h-12 w-40'\n }\n \n return (\n <Skeleton \n ref={ref}\n className={cn(\n \"rounded-lg\",\n sizeClasses[size],\n className\n )}\n {...props}\n />\n )\n }\n)\nSkeletonButton.displayName = 'SkeletonButton'\n\ninterface SkeletonHeadingProps extends React.HTMLAttributes<HTMLDivElement> {\n level?: 1 | 2 | 3 | 4 | 5 | 6\n className?: string\n}\n\nconst SkeletonHeading = React.forwardRef<HTMLDivElement, SkeletonHeadingProps>(\n ({ level = 1, className, ...props }, ref) => {\n const heightClasses = {\n 1: 'h-12',\n 2: 'h-10',\n 3: 'h-8',\n 4: 'h-7',\n 5: 'h-6',\n 6: 'h-5'\n }\n \n return (\n <Skeleton \n ref={ref}\n className={cn(\n heightClasses[level],\n \"w-3/4\",\n className\n )}\n {...props}\n />\n )\n }\n)\nSkeletonHeading.displayName = 'SkeletonHeading'\n\ninterface SkeletonListProps extends React.HTMLAttributes<HTMLDivElement> {\n items?: number\n className?: string\n}\n\nconst SkeletonList = React.forwardRef<HTMLDivElement, SkeletonListProps>(\n ({ items = 5, className, ...props }, ref) => {\n return (\n <div ref={ref} className={cn(\"space-y-3\", className)} {...props}>\n {Array.from({ length: items }).map((_, i) => (\n <div key={i} className=\"flex items-center gap-3\">\n <Skeleton className=\"h-10 w-10 rounded-full flex-shrink-0\" />\n <div className=\"flex-1\">\n <Skeleton className=\"h-4 w-1/3 mb-1\" />\n <Skeleton className=\"h-3 w-1/2\" />\n </div>\n </div>\n ))}\n </div>\n )\n }\n)\nSkeletonList.displayName = 'SkeletonList'\n\ninterface SkeletonNavigationProps extends React.HTMLAttributes<HTMLDivElement> {\n items?: number\n className?: string\n}\n\nconst SkeletonNavigation = React.forwardRef<HTMLDivElement, SkeletonNavigationProps>(\n ({ items = 6, className, ...props }, ref) => {\n return (\n <div ref={ref} className={cn(\"flex items-center gap-6\", className)} {...props}>\n {Array.from({ length: items }).map((_, i) => (\n <Skeleton key={i} className=\"h-5 w-20\" />\n ))}\n </div>\n )\n }\n)\nSkeletonNavigation.displayName = 'SkeletonNavigation'\n\nexport { \n Skeleton,\n SkeletonText,\n SkeletonCard,\n SkeletonGrid,\n SkeletonButton,\n SkeletonHeading,\n SkeletonList,\n SkeletonNavigation\n}"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkHIV2GIFPcjs = require('./chunk-HIV2GIFP.cjs');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
@@ -11,12 +11,12 @@ var _chunk7VUKIWF6cjs = require('./chunk-7VUKIWF6.cjs');
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _chunkLCWCUFJJcjs = require('./chunk-LCWCUFJJ.cjs');
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
var
|
|
19
|
+
var _chunkOGVIGAMZcjs = require('./chunk-OGVIGAMZ.cjs');
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
|
|
@@ -27,14 +27,14 @@ var _chunkUTVOBFXRcjs = require('./chunk-UTVOBFXR.cjs');
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
var
|
|
30
|
+
var _chunkKI4EGKNVcjs = require('./chunk-KI4EGKNV.cjs');
|
|
31
31
|
|
|
32
32
|
// src/components/faq/faq-section.tsx
|
|
33
33
|
var _react = require('react');
|
|
34
34
|
|
|
35
35
|
// src/components/faq-accordion.tsx
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
_chunkKI4EGKNVcjs.init_cn.call(void 0, );
|
|
38
38
|
var _jsxruntime = require('react/jsx-runtime');
|
|
39
39
|
var useMeasuredHeight = (isOpen) => {
|
|
40
40
|
const ref = _react.useRef.call(void 0, null);
|
|
@@ -70,7 +70,7 @@ function FaqAccordion({ items, defaultOpenIds = [] }) {
|
|
|
70
70
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
71
71
|
"div",
|
|
72
72
|
{
|
|
73
|
-
id:
|
|
73
|
+
id: _chunkLCWCUFJJcjs.faqItemAnchor.call(void 0, item.id),
|
|
74
74
|
className: "scroll-mt-24 transition-colors hover:bg-ods-bg-hover",
|
|
75
75
|
children: [
|
|
76
76
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -94,7 +94,7 @@ function FaqAccordion({ items, defaultOpenIds = [] }) {
|
|
|
94
94
|
{
|
|
95
95
|
"aria-hidden": "true",
|
|
96
96
|
size: 24,
|
|
97
|
-
className:
|
|
97
|
+
className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
98
98
|
"shrink-0 text-ods-text-primary transition-transform duration-300",
|
|
99
99
|
isOpen && "rotate-180"
|
|
100
100
|
)
|
|
@@ -119,7 +119,7 @@ function FaqAccordion({ items, defaultOpenIds = [] }) {
|
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
// src/components/faq/faq-section.tsx
|
|
122
|
-
|
|
122
|
+
_chunkKI4EGKNVcjs.init_cn.call(void 0, );
|
|
123
123
|
|
|
124
124
|
// src/components/faq/json-ld.ts
|
|
125
125
|
var DEFAULT_NAME = "Frequently Asked Questions";
|
|
@@ -151,7 +151,7 @@ function buildFaqJsonLdFromFaqs(faqs, opts = {}) {
|
|
|
151
151
|
|
|
152
152
|
var DEFAULT_HEADING_TEXT = "Frequently Asked Questions";
|
|
153
153
|
function buildFaqsUrl(entityType, entityId, minResults, apiBaseUrl = "") {
|
|
154
|
-
return
|
|
154
|
+
return _chunkLCWCUFJJcjs.buildSuggestionUrl.call(void 0, "/api/faqs", { apiBaseUrl, entityType, entityId, count: minResults });
|
|
155
155
|
}
|
|
156
156
|
function groupFaqsBySection(faqs) {
|
|
157
157
|
const order = [];
|
|
@@ -167,7 +167,7 @@ function groupFaqsBySection(faqs) {
|
|
|
167
167
|
}
|
|
168
168
|
let group = byName.get(name);
|
|
169
169
|
if (!group) {
|
|
170
|
-
group = { section: name, slug:
|
|
170
|
+
group = { section: name, slug: _chunkLCWCUFJJcjs.faqSectionSlug.call(void 0, name), items: [] };
|
|
171
171
|
byName.set(name, group);
|
|
172
172
|
order.push(name);
|
|
173
173
|
}
|
|
@@ -207,7 +207,7 @@ function GroupedFaqList({
|
|
|
207
207
|
}
|
|
208
208
|
if (bestId) setActiveSlug(bestId);
|
|
209
209
|
},
|
|
210
|
-
{ rootMargin: `-${
|
|
210
|
+
{ rootMargin: `-${_chunkOGVIGAMZcjs.STICKY_HEADER_OFFSET_PX}px 0px -55% 0px`, threshold: 0 }
|
|
211
211
|
);
|
|
212
212
|
for (const group of navGroups) {
|
|
213
213
|
const el = group.slug ? document.getElementById(group.slug) : null;
|
|
@@ -217,7 +217,7 @@ function GroupedFaqList({
|
|
|
217
217
|
}, [slugKey]);
|
|
218
218
|
const [hashTarget, setHashTarget] = _react.useState.call(void 0, null);
|
|
219
219
|
_react.useEffect.call(void 0, () => {
|
|
220
|
-
const refresh = () => setHashTarget(
|
|
220
|
+
const refresh = () => setHashTarget(_chunkLCWCUFJJcjs.parseFaqHash.call(void 0, window.location.hash));
|
|
221
221
|
refresh();
|
|
222
222
|
window.addEventListener("hashchange", refresh);
|
|
223
223
|
return () => window.removeEventListener("hashchange", refresh);
|
|
@@ -234,15 +234,15 @@ function GroupedFaqList({
|
|
|
234
234
|
}, [groups, hashTarget]);
|
|
235
235
|
const accordionKeySuffix = _optionalChain([hashTarget, 'optionalAccess', _8 => _8.kind]) === "item" ? `item:${hashTarget.rawId}` : "default";
|
|
236
236
|
const scrollDep = `${groups.length}|` + (_optionalChain([hashTarget, 'optionalAccess', _9 => _9.kind]) === "item" ? `item:${hashTarget.rawId}` : _optionalChain([hashTarget, 'optionalAccess', _10 => _10.kind]) === "section" ? `section:${hashTarget.slug}` : "none");
|
|
237
|
-
|
|
237
|
+
_chunkOGVIGAMZcjs.useScrollToHash.call(void 0, scrollDep, { headerOffset: _chunkOGVIGAMZcjs.STICKY_HEADER_OFFSET_PX });
|
|
238
238
|
_react.useEffect.call(void 0, () => {
|
|
239
239
|
if (_optionalChain([hashTarget, 'optionalAccess', _11 => _11.kind]) === "section") setActiveSlug(hashTarget.slug);
|
|
240
240
|
}, [hashTarget]);
|
|
241
241
|
const handleJump = _react.useCallback.call(void 0,
|
|
242
242
|
(e, slug) => {
|
|
243
243
|
e.preventDefault();
|
|
244
|
-
|
|
245
|
-
headerOffset:
|
|
244
|
+
_chunkOGVIGAMZcjs.navigateSamePageHash.call(void 0, "#" + slug, {
|
|
245
|
+
headerOffset: _chunkOGVIGAMZcjs.STICKY_HEADER_OFFSET_PX,
|
|
246
246
|
history: "replace"
|
|
247
247
|
});
|
|
248
248
|
},
|
|
@@ -257,7 +257,7 @@ function GroupedFaqList({
|
|
|
257
257
|
href: `#${group.slug}`,
|
|
258
258
|
"aria-current": isActive ? "true" : void 0,
|
|
259
259
|
onClick: (e) => handleJump(e, group.slug),
|
|
260
|
-
className:
|
|
260
|
+
className: _chunkKI4EGKNVcjs.cn.call(void 0,
|
|
261
261
|
"rounded-full border px-4 py-2 text-h6 transition-colors",
|
|
262
262
|
isActive ? "border-ods-text-primary bg-ods-card text-ods-text-primary" : "border-ods-border bg-ods-card text-ods-text-secondary hover:border-ods-text-secondary hover:text-ods-text-primary"
|
|
263
263
|
),
|
|
@@ -274,7 +274,7 @@ function GroupedFaqList({
|
|
|
274
274
|
id: _nullishCoalesce(group.slug, () => ( void 0)),
|
|
275
275
|
className: "scroll-mt-24 space-y-4",
|
|
276
276
|
children: [
|
|
277
|
-
group.section && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CategoryHeading, { className:
|
|
277
|
+
group.section && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CategoryHeading, { className: _chunkLCWCUFJJcjs.SECTION_HEADING_CLASS, children: group.section }),
|
|
278
278
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
279
279
|
FaqAccordion,
|
|
280
280
|
{
|
|
@@ -315,10 +315,10 @@ function FaqSection({
|
|
|
315
315
|
() => initialFaqs ? { faqs: initialFaqs } : void 0,
|
|
316
316
|
[initialFaqs]
|
|
317
317
|
);
|
|
318
|
-
const { data, isLoading, error } =
|
|
318
|
+
const { data, isLoading, error } = _chunkHIV2GIFPcjs.useSelfFetch.call(void 0, url, { initialData });
|
|
319
319
|
const faqs = _nullishCoalesce(_optionalChain([data, 'optionalAccess', _14 => _14.faqs]), () => ( []));
|
|
320
320
|
const groups = _react.useMemo.call(void 0, () => faqs.length > 0 ? groupFaqsBySection(faqs) : [], [faqs]);
|
|
321
|
-
const headingNode = heading === void 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className:
|
|
321
|
+
const headingNode = heading === void 0 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "h2", { className: _chunkLCWCUFJJcjs.SECTION_HEADING_CLASS, children: DEFAULT_HEADING_TEXT }) : heading;
|
|
322
322
|
if (error) return null;
|
|
323
323
|
if (!isLoading && faqs.length === 0) return null;
|
|
324
324
|
if (isLoading && faqs.length === 0) {
|
|
@@ -334,7 +334,7 @@ function FaqSection({
|
|
|
334
334
|
"script",
|
|
335
335
|
{
|
|
336
336
|
type: "application/ld+json",
|
|
337
|
-
dangerouslySetInnerHTML: { __html:
|
|
337
|
+
dangerouslySetInnerHTML: { __html: _chunkLCWCUFJJcjs.serializeJsonLd.call(void 0, schema) }
|
|
338
338
|
}
|
|
339
339
|
)
|
|
340
340
|
] });
|
|
@@ -361,7 +361,7 @@ function FaqDocumentPage({
|
|
|
361
361
|
label: _nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _15 => _15.label]), () => ( "Back to home")),
|
|
362
362
|
onClick: () => router.push(_nullishCoalesce(_optionalChain([backButton, 'optionalAccess', _16 => _16.href]), () => ( "/")))
|
|
363
363
|
};
|
|
364
|
-
const inner = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
364
|
+
const inner = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLCWCUFJJcjs.PageLayout, { title, subtitle, backButton: backCfg, titleSize: "h1", titleWrap: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
365
365
|
FaqSection,
|
|
366
366
|
{
|
|
367
367
|
initialFaqs,
|
|
@@ -374,7 +374,7 @@ function FaqDocumentPage({
|
|
|
374
374
|
minResults
|
|
375
375
|
}
|
|
376
376
|
) });
|
|
377
|
-
return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
377
|
+
return shell ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkLCWCUFJJcjs.PageShell, { children: inner }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "page-shell-content", children: inner });
|
|
378
378
|
}
|
|
379
379
|
|
|
380
380
|
|
|
@@ -382,4 +382,4 @@ function FaqDocumentPage({
|
|
|
382
382
|
|
|
383
383
|
|
|
384
384
|
exports.FaqAccordion = FaqAccordion; exports.FaqSection = FaqSection; exports.FaqDocumentPage = FaqDocumentPage;
|
|
385
|
-
//# sourceMappingURL=chunk-
|
|
385
|
+
//# sourceMappingURL=chunk-44ML4VMJ.cjs.map
|