@floegence/floe-webapp-core 0.60.2 → 0.62.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/chat.js CHANGED
@@ -5,16 +5,16 @@ import { ChatInput as n } from "./components/chat/input/ChatInput.js";
5
5
  import { ChatProvider as d, useChatContext as p } from "./components/chat/ChatProvider.js";
6
6
  import { ChecklistBlock as c } from "./components/chat/blocks/ChecklistBlock.js";
7
7
  import { CodeBlock as s } from "./components/chat/blocks/CodeBlock.js";
8
- import { CodeDiffBlock as g } from "./components/chat/blocks/CodeDiffBlock.js";
8
+ import { CodeDiffBlock as u } from "./components/chat/blocks/CodeDiffBlock.js";
9
9
  import { ConnectionStatus as h } from "./components/chat/status/ConnectionStatus.js";
10
- import { DEFAULT_VIRTUAL_LIST_CONFIG as C } from "./components/chat/types.js";
10
+ import { DEFAULT_VIRTUAL_LIST_CONFIG as w } from "./components/chat/types.js";
11
11
  import { FileBlock as W } from "./components/chat/blocks/FileBlock.js";
12
12
  import { ImageBlock as D } from "./components/chat/blocks/ImageBlock.js";
13
- import { MarkdownBlock as v } from "./components/chat/blocks/MarkdownBlock.js";
13
+ import { MarkdownBlock as I } from "./components/chat/blocks/MarkdownBlock.js";
14
14
  import { MarkdownMedia as L } from "./components/chat/blocks/MarkdownMedia.js";
15
- import { MermaidBlock as F } from "./components/chat/blocks/MermaidBlock.js";
16
- import { MessageActions as y } from "./components/chat/message/MessageActions.js";
17
- import { MessageAvatar as P } from "./components/chat/message/MessageAvatar.js";
15
+ import { MermaidBlock as y } from "./components/chat/blocks/MermaidBlock.js";
16
+ import { MessageActions as b } from "./components/chat/message/MessageActions.js";
17
+ import { MessageAvatar as H } from "./components/chat/message/MessageAvatar.js";
18
18
  import { MessageBubble as R } from "./components/chat/message/MessageBubble.js";
19
19
  import { MessageItem as V } from "./components/chat/message/MessageItem.js";
20
20
  import { MessageMeta as N } from "./components/chat/message/MessageMeta.js";
@@ -28,13 +28,14 @@ import { VirtualMessageList as er } from "./components/chat/message-list/Virtual
28
28
  import { WorkingIndicator as tr } from "./components/chat/status/WorkingIndicator.js";
29
29
  import { buildAssistantNoticeEvents as ir, createStreamEventBuilder as fr, isStreamEvent as mr } from "./components/chat/streamEvents.js";
30
30
  import { computeCodeDiff as kr, computeCodeDiffSync as dr, configureDiffWorker as pr, createDiffWorker as xr, hasDiffWorker as cr, terminateDiffWorker as lr, waitForDiffWorker as sr } from "./components/chat/hooks/useCodeDiff.js";
31
- import { configureMarkdownWorker as gr, createMarkdownWorker as ur, hasMarkdownWorker as hr, renderMarkdown as wr, renderMarkdownSync as Cr, terminateMarkdownWorker as Br, waitForMarkdownWorker as Wr } from "./components/chat/hooks/useMarkdown.js";
32
- import { configureMermaidWorker as Dr, configureSyncMermaid as Ar, renderMermaid as vr, terminateMermaidWorker as Ir, useMermaid as Lr } from "./components/chat/hooks/useMermaid.js";
33
- import { configureShikiWorker as Fr, configureSyncHighlighter as br, highlightCode as yr, terminateShikiWorker as Er, useCodeHighlight as Pr } from "./components/chat/hooks/useCodeHighlight.js";
34
- import { markdownMediaKind as Rr, markdownMediaPlaceholder as Ur, readMarkdownMediaPlaceholder as Vr, safeMarkdownMediaURL as _r, sandboxedMarkdownHtml as Nr } from "./components/chat/markdown/media.js";
35
- import { useAttachments as Kr } from "./components/chat/hooks/useAttachments.js";
36
- import { useAutoScroll as jr } from "./components/chat/hooks/useAutoScroll.js";
37
- import { useVirtualList as zr } from "./components/chat/hooks/useVirtualList.js";
31
+ import { configureMarkdownWorker as ur, createMarkdownWorker as gr, hasMarkdownWorker as hr, renderMarkdown as Cr, renderMarkdownSync as wr, terminateMarkdownWorker as Br, waitForMarkdownWorker as Wr } from "./components/chat/hooks/useMarkdown.js";
32
+ import { configureMermaidWorker as Dr, configureSyncMermaid as Ar, renderMermaid as Ir, terminateMermaidWorker as vr, useMermaid as Lr } from "./components/chat/hooks/useMermaid.js";
33
+ import { configureShikiWorker as yr, configureSyncHighlighter as Fr, highlightCode as br, terminateShikiWorker as Er, useCodeHighlight as Hr } from "./components/chat/hooks/useCodeHighlight.js";
34
+ import { createInputHistoryController as Rr } from "./components/chat/input/createInputHistoryController.js";
35
+ import { markdownMediaKind as Vr, markdownMediaPlaceholder as _r, readMarkdownMediaPlaceholder as Nr, safeMarkdownMediaURL as Gr, sandboxedMarkdownHtml as Kr } from "./components/chat/markdown/media.js";
36
+ import { useAttachments as jr } from "./components/chat/hooks/useAttachments.js";
37
+ import { useAutoScroll as zr } from "./components/chat/hooks/useAutoScroll.js";
38
+ import { useVirtualList as Qr } from "./components/chat/hooks/useVirtualList.js";
38
39
  export {
39
40
  o as AttachmentPreview,
40
41
  a as BlockRenderer,
@@ -43,16 +44,16 @@ export {
43
44
  d as ChatProvider,
44
45
  c as ChecklistBlock,
45
46
  s as CodeBlock,
46
- g as CodeDiffBlock,
47
+ u as CodeDiffBlock,
47
48
  h as ConnectionStatus,
48
- C as DEFAULT_VIRTUAL_LIST_CONFIG,
49
+ w as DEFAULT_VIRTUAL_LIST_CONFIG,
49
50
  W as FileBlock,
50
51
  D as ImageBlock,
51
- v as MarkdownBlock,
52
+ I as MarkdownBlock,
52
53
  L as MarkdownMedia,
53
- F as MermaidBlock,
54
- y as MessageActions,
55
- P as MessageAvatar,
54
+ y as MermaidBlock,
55
+ b as MessageActions,
56
+ H as MessageAvatar,
56
57
  R as MessageBubble,
57
58
  V as MessageItem,
58
59
  N as MessageMeta,
@@ -68,36 +69,37 @@ export {
68
69
  kr as computeCodeDiff,
69
70
  dr as computeCodeDiffSync,
70
71
  pr as configureDiffWorker,
71
- gr as configureMarkdownWorker,
72
+ ur as configureMarkdownWorker,
72
73
  Dr as configureMermaidWorker,
73
- Fr as configureShikiWorker,
74
- br as configureSyncHighlighter,
74
+ yr as configureShikiWorker,
75
+ Fr as configureSyncHighlighter,
75
76
  Ar as configureSyncMermaid,
76
77
  xr as createDiffWorker,
77
- ur as createMarkdownWorker,
78
+ Rr as createInputHistoryController,
79
+ gr as createMarkdownWorker,
78
80
  fr as createStreamEventBuilder,
79
81
  cr as hasDiffWorker,
80
82
  hr as hasMarkdownWorker,
81
- yr as highlightCode,
83
+ br as highlightCode,
82
84
  mr as isStreamEvent,
83
- Rr as markdownMediaKind,
84
- Ur as markdownMediaPlaceholder,
85
- Vr as readMarkdownMediaPlaceholder,
86
- wr as renderMarkdown,
87
- Cr as renderMarkdownSync,
88
- vr as renderMermaid,
89
- _r as safeMarkdownMediaURL,
90
- Nr as sandboxedMarkdownHtml,
85
+ Vr as markdownMediaKind,
86
+ _r as markdownMediaPlaceholder,
87
+ Nr as readMarkdownMediaPlaceholder,
88
+ Cr as renderMarkdown,
89
+ wr as renderMarkdownSync,
90
+ Ir as renderMermaid,
91
+ Gr as safeMarkdownMediaURL,
92
+ Kr as sandboxedMarkdownHtml,
91
93
  lr as terminateDiffWorker,
92
94
  Br as terminateMarkdownWorker,
93
- Ir as terminateMermaidWorker,
95
+ vr as terminateMermaidWorker,
94
96
  Er as terminateShikiWorker,
95
- Kr as useAttachments,
96
- jr as useAutoScroll,
97
+ jr as useAttachments,
98
+ zr as useAutoScroll,
97
99
  p as useChatContext,
98
- Pr as useCodeHighlight,
100
+ Hr as useCodeHighlight,
99
101
  Lr as useMermaid,
100
- zr as useVirtualList,
102
+ Qr as useVirtualList,
101
103
  sr as waitForDiffWorker,
102
104
  Wr as waitForMarkdownWorker
103
105
  };
@@ -8,5 +8,6 @@ export { VirtualMessageList, type VirtualMessageListProps } from './message-list
8
8
  export { MessageItem, MessageBubble, MessageAvatar, MessageMeta, MessageActions, type MessageItemProps, type MessageBubbleProps, type MessageAvatarProps, type MessageMetaProps, type MessageActionsProps, } from './message';
9
9
  export { BlockRenderer, TextBlock, MarkdownBlock, CodeBlock, CodeDiffBlock, ImageBlock, SvgBlock, MermaidBlock, ChecklistBlock, ShellBlock, FileBlock, ThinkingBlock, ToolCallBlock, type BlockRendererProps, type TextBlockProps, type MarkdownBlockProps, type CodeBlockProps, type CodeDiffBlockProps, type ImageBlockProps, type SvgBlockProps, type MermaidBlockProps, type ChecklistBlockProps, type ShellBlockProps, type FileBlockProps, type ThinkingBlockProps, type ToolCallBlockProps, } from './blocks';
10
10
  export { ChatInput, AttachmentPreview, type ChatInputProps, type AttachmentPreviewProps } from './input';
11
+ export { createInputHistoryController, type InputHistoryEntry, type InputHistoryContext, type InputHistoryState, type InputHistoryOptions, type InputHistoryEditor, type InputHistoryController, } from './input/createInputHistoryController';
11
12
  export { WorkingIndicator, StreamingCursor, ConnectionStatus, type WorkingIndicatorProps, type StreamingCursorProps, type ConnectionStatusProps, type ConnectionState, } from './status';
12
13
  export { useVirtualList, useCodeHighlight, useMermaid, useAutoScroll, useAttachments, highlightCode, renderMermaid, terminateShikiWorker, terminateMermaidWorker, configureShikiWorker, configureSyncHighlighter, configureMermaidWorker, configureSyncMermaid, createMarkdownWorker, configureMarkdownWorker, hasMarkdownWorker, waitForMarkdownWorker, renderMarkdown, renderMarkdownSync, terminateMarkdownWorker, createDiffWorker, configureDiffWorker, hasDiffWorker, waitForDiffWorker, computeCodeDiff, computeCodeDiffSync, terminateDiffWorker, type UseVirtualListOptions, type UseVirtualListReturn, type VirtualItem, type UseAutoScrollOptions, type UseAttachmentsOptions, } from './hooks';
@@ -0,0 +1,36 @@
1
+ export interface InputHistoryEntry {
2
+ readonly id: string;
3
+ readonly text: string;
4
+ }
5
+ export interface InputHistoryContext {
6
+ readonly scope: string;
7
+ readonly value: string;
8
+ /** Changes on every host draft mutation, including writes of the same text. */
9
+ readonly revision: unknown;
10
+ /** Oldest first. IDs are unique within the scope. Empty text is skipped. */
11
+ readonly entries: readonly InputHistoryEntry[];
12
+ readonly enabled: boolean;
13
+ }
14
+ export interface InputHistoryState {
15
+ /** One means the newest entry in the current browsing session. */
16
+ readonly position: number;
17
+ readonly total: number;
18
+ }
19
+ export interface InputHistoryOptions {
20
+ readonly read: () => InputHistoryContext;
21
+ /** Commit to the controlled editor synchronously; never submit the text. */
22
+ readonly write: (text: string) => void;
23
+ readonly onChange?: (state: InputHistoryState | null, reason: 'navigate' | 'reset') => void;
24
+ }
25
+ export type InputHistoryEditor = Pick<HTMLTextAreaElement, 'value' | 'selectionStart' | 'selectionEnd' | 'disabled' | 'readOnly' | 'setSelectionRange'>;
26
+ export interface InputHistoryController {
27
+ readonly state: () => InputHistoryState | null;
28
+ /** Call when the controlled draft, scope, eligibility or candidates change. */
29
+ readonly synchronize: () => void;
30
+ /** Call on input, paste, pointer selection, composition start, blur and hide. */
31
+ readonly reset: () => void;
32
+ /** Invoke after higher-priority menus. True means the event was consumed. */
33
+ readonly handleKeyDown: (event: KeyboardEvent, editor: InputHistoryEditor) => boolean;
34
+ }
35
+ /** Terminal-style recall for a host-owned controlled textarea. No persistence. */
36
+ export declare function createInputHistoryController(options: InputHistoryOptions): InputHistoryController;
@@ -0,0 +1,48 @@
1
+ function d(i) {
2
+ let t = null, c = !1;
3
+ const u = () => t ? { position: t.entries.length - t.index, total: t.entries.length } : null, a = () => {
4
+ t && (t = null, i.onChange?.(null, "reset"));
5
+ }, f = () => {
6
+ if (!t || c) return;
7
+ const e = i.read();
8
+ if (!e.enabled || e.scope !== t.scope || e.value !== t.value || !Object.is(e.revision, t.revision)) {
9
+ a();
10
+ return;
11
+ }
12
+ const r = new Map(e.entries.map((n) => [n.id, n.text]));
13
+ t.entries.some((n) => r.get(n.id) !== n.text) && a();
14
+ }, g = (e, r) => {
15
+ const n = t, l = n.entries[e]?.text ?? "";
16
+ c = !0;
17
+ try {
18
+ i.write(l);
19
+ } finally {
20
+ c = !1;
21
+ }
22
+ const s = i.read();
23
+ if (!s.enabled || s.scope !== n.scope || s.value !== l) {
24
+ a();
25
+ return;
26
+ }
27
+ t = e < n.entries.length ? { ...n, index: e, value: l, revision: s.revision } : null, r.setSelectionRange(l.length, l.length), i.onChange?.(u(), "navigate");
28
+ };
29
+ return { state: u, synchronize: f, reset: a, handleKeyDown: (e, r) => {
30
+ f();
31
+ const n = i.read();
32
+ if (e.defaultPrevented || e.isComposing || e.keyCode === 229 || e.altKey || e.ctrlKey || e.metaKey || e.shiftKey || !n.enabled || !n.scope || r.disabled || r.readOnly || r.selectionStart !== r.selectionEnd || r.value !== n.value)
33
+ return a(), !1;
34
+ if (e.key !== "ArrowUp" && e.key !== "ArrowDown" && e.key !== "Escape")
35
+ return ["Shift", "Control", "Alt", "Meta"].includes(e.key) || a(), !1;
36
+ if (!t) {
37
+ if (e.key !== "ArrowUp" || n.value.length !== 0) return !1;
38
+ const s = n.entries.filter((o) => o.text.length > 0).map((o) => ({ id: o.id, text: o.text }));
39
+ if (!s.length) return !1;
40
+ t = { scope: n.scope, entries: s, index: s.length, value: "", revision: n.revision };
41
+ }
42
+ const l = e.key === "Escape" ? t.entries.length : Math.max(0, Math.min(t.entries.length, t.index + (e.key === "ArrowUp" ? -1 : 1)));
43
+ return e.preventDefault(), e.stopPropagation(), l !== t.index && g(l, r), !0;
44
+ } };
45
+ }
46
+ export {
47
+ d as createInputHistoryController
48
+ };
@@ -0,0 +1,52 @@
1
+ import { type JSX } from 'solid-js';
2
+ /** Host-owned routing and state stay outside this responsive settings frame. */
3
+ export declare function SettingsLayout(props: {
4
+ sidebar: JSX.Element;
5
+ mobileNavigation?: JSX.Element;
6
+ children: JSX.Element;
7
+ class?: string;
8
+ }): JSX.Element;
9
+ export interface SettingsNavigationItem {
10
+ id: string;
11
+ label: string;
12
+ icon?: (props: {
13
+ class?: string;
14
+ }) => JSX.Element;
15
+ attributes?: JSX.ButtonHTMLAttributes<HTMLButtonElement>;
16
+ }
17
+ export interface SettingsNavigationGroup {
18
+ id: string;
19
+ label: string;
20
+ items: readonly SettingsNavigationItem[];
21
+ }
22
+ export interface SettingsNavigationProps {
23
+ label: string;
24
+ groups: readonly SettingsNavigationGroup[];
25
+ value: string;
26
+ onChange: (id: string) => void;
27
+ search?: JSX.Element;
28
+ empty?: JSX.Element;
29
+ }
30
+ export declare function SettingsNavigation(props: SettingsNavigationProps): JSX.Element;
31
+ export interface SettingsSectionProps extends Omit<JSX.HTMLAttributes<HTMLElement>, 'title'> {
32
+ title: string;
33
+ description?: string;
34
+ badge?: JSX.Element;
35
+ actions?: JSX.Element;
36
+ /** A page owns its primary heading; sections are subordinate groups. */
37
+ variant?: 'page' | 'section';
38
+ }
39
+ export declare function SettingsSection(props: SettingsSectionProps): JSX.Element;
40
+ export declare function SettingsList(props: JSX.HTMLAttributes<HTMLDivElement>): JSX.Element;
41
+ export interface SettingRowProps {
42
+ title: string;
43
+ description?: string;
44
+ icon?: (props: {
45
+ class?: string;
46
+ }) => JSX.Element;
47
+ control?: JSX.Element;
48
+ children?: JSX.Element;
49
+ tone?: 'default' | 'info' | 'success' | 'warning' | 'danger';
50
+ class?: string;
51
+ }
52
+ export declare function SettingRow(props: SettingRowProps): JSX.Element;
@@ -0,0 +1,183 @@
1
+ import { insert as n, createComponent as s, effect as v, className as b, setAttribute as h, spread as f, mergeProps as $, template as c } from "solid-js/web";
2
+ import { Show as d, splitProps as w, For as m } from "solid-js";
3
+ import { cn as u } from "../../utils/cn.js";
4
+ var x = /* @__PURE__ */ c("<div><aside class=floe-settings-layout__sidebar></aside><div class=floe-settings-layout__mobile></div><div class=floe-settings-layout__content>"), k = /* @__PURE__ */ c("<div class=floe-settings-navigation__search>"), N = /* @__PURE__ */ c("<nav class=floe-settings-navigation><div class=floe-settings-navigation__groups>"), L = /* @__PURE__ */ c("<div class=floe-settings-navigation__group><div class=floe-settings-navigation__label>"), P = /* @__PURE__ */ c("<button><span>"), A = /* @__PURE__ */ c("<h1>"), C = /* @__PURE__ */ c("<p>"), F = /* @__PURE__ */ c("<div class=floe-settings-section__actions>"), R = /* @__PURE__ */ c("<section><header class=floe-settings-section__header><div class=floe-settings-section__heading><div class=floe-settings-section__title></div></div></header><div class=floe-settings-section__body>"), j = /* @__PURE__ */ c("<h2>"), q = /* @__PURE__ */ c("<div>"), z = /* @__PURE__ */ c("<div class=floe-setting-row__control>"), B = /* @__PURE__ */ c("<div class=floe-setting-row__body>"), D = /* @__PURE__ */ c("<div><div class=floe-setting-row__main><div class=floe-setting-row__label><div><div class=floe-setting-row__title>");
5
+ function I(t) {
6
+ return (() => {
7
+ var e = x(), o = e.firstChild, i = o.nextSibling, a = i.nextSibling;
8
+ return n(o, () => t.sidebar), n(i, () => t.mobileNavigation), n(a, () => t.children), v(() => b(e, u("floe-settings-layout", t.class))), e;
9
+ })();
10
+ }
11
+ function J(t) {
12
+ return (() => {
13
+ var e = N(), o = e.firstChild;
14
+ return n(e, s(d, {
15
+ get when() {
16
+ return t.search;
17
+ },
18
+ get children() {
19
+ var i = k();
20
+ return n(i, () => t.search), i;
21
+ }
22
+ }), o), n(o, s(d, {
23
+ get when() {
24
+ return t.groups.some((i) => i.items.length);
25
+ },
26
+ get fallback() {
27
+ return t.empty;
28
+ },
29
+ get children() {
30
+ return s(m, {
31
+ get each() {
32
+ return t.groups;
33
+ },
34
+ children: (i) => s(d, {
35
+ get when() {
36
+ return i.items.length;
37
+ },
38
+ get children() {
39
+ var a = L(), _ = a.firstChild;
40
+ return n(_, () => i.label), n(a, s(m, {
41
+ get each() {
42
+ return i.items;
43
+ },
44
+ children: (l) => (() => {
45
+ var g = P(), r = g.firstChild;
46
+ return f(g, $(() => l.attributes, {
47
+ type: "button",
48
+ get class() {
49
+ return u("floe-settings-navigation__item", l.attributes?.class);
50
+ },
51
+ get "aria-current"() {
52
+ return t.value === l.id ? "page" : void 0;
53
+ },
54
+ onClick: () => t.onChange(l.id)
55
+ }), !1, !0), n(g, s(d, {
56
+ get when() {
57
+ return l.icon;
58
+ },
59
+ children: (S) => {
60
+ const y = S();
61
+ return s(y, {
62
+ class: "floe-settings-navigation__icon"
63
+ });
64
+ }
65
+ }), r), n(r, () => l.label), g;
66
+ })()
67
+ }), null), v(() => h(a, "data-settings-group", i.id)), a;
68
+ }
69
+ })
70
+ });
71
+ }
72
+ })), v(() => h(e, "aria-label", t.label)), e;
73
+ })();
74
+ }
75
+ function K(t) {
76
+ const [e, o] = w(t, ["title", "description", "badge", "actions", "variant", "class", "children"]);
77
+ return (() => {
78
+ var i = R(), a = i.firstChild, _ = a.firstChild, l = _.firstChild, g = a.nextSibling;
79
+ return f(i, $(o, {
80
+ get class() {
81
+ return u("floe-settings-section", e.class);
82
+ },
83
+ get "data-settings-variant"() {
84
+ return e.variant ?? "section";
85
+ }
86
+ }), !1, !0), n(l, s(d, {
87
+ get when() {
88
+ return e.variant === "page";
89
+ },
90
+ get fallback() {
91
+ return (() => {
92
+ var r = j();
93
+ return n(r, () => e.title), r;
94
+ })();
95
+ },
96
+ get children() {
97
+ var r = A();
98
+ return n(r, () => e.title), r;
99
+ }
100
+ }), null), n(l, () => e.badge, null), n(_, s(d, {
101
+ get when() {
102
+ return e.description;
103
+ },
104
+ get children() {
105
+ var r = C();
106
+ return n(r, () => e.description), r;
107
+ }
108
+ }), null), n(a, s(d, {
109
+ get when() {
110
+ return e.actions;
111
+ },
112
+ get children() {
113
+ var r = F();
114
+ return n(r, () => e.actions), r;
115
+ }
116
+ }), null), n(g, () => e.children), i;
117
+ })();
118
+ }
119
+ function M(t) {
120
+ const [e, o] = w(t, ["class", "children"]);
121
+ return (() => {
122
+ var i = q();
123
+ return f(i, $(o, {
124
+ get class() {
125
+ return u("floe-settings-list", e.class);
126
+ },
127
+ "data-floe-surface": "card"
128
+ }), !1, !0), n(i, () => e.children), i;
129
+ })();
130
+ }
131
+ function O(t) {
132
+ return (() => {
133
+ var e = D(), o = e.firstChild, i = o.firstChild, a = i.firstChild, _ = a.firstChild;
134
+ return n(i, s(d, {
135
+ get when() {
136
+ return t.icon;
137
+ },
138
+ children: (l) => {
139
+ const g = l();
140
+ return s(g, {
141
+ class: "floe-setting-row__icon"
142
+ });
143
+ }
144
+ }), a), n(_, () => t.title), n(a, s(d, {
145
+ get when() {
146
+ return t.description;
147
+ },
148
+ get children() {
149
+ var l = C();
150
+ return n(l, () => t.description), l;
151
+ }
152
+ }), null), n(o, s(d, {
153
+ get when() {
154
+ return t.control;
155
+ },
156
+ get children() {
157
+ var l = z();
158
+ return n(l, () => t.control), l;
159
+ }
160
+ }), null), n(e, s(d, {
161
+ get when() {
162
+ return t.children;
163
+ },
164
+ get children() {
165
+ var l = B();
166
+ return n(l, () => t.children), l;
167
+ }
168
+ }), null), v((l) => {
169
+ var g = u("floe-setting-row", t.class), r = t.tone ?? "default";
170
+ return g !== l.e && b(e, l.e = g), r !== l.t && h(e, "data-tone", l.t = r), l;
171
+ }, {
172
+ e: void 0,
173
+ t: void 0
174
+ }), e;
175
+ })();
176
+ }
177
+ export {
178
+ O as SettingRow,
179
+ I as SettingsLayout,
180
+ M as SettingsList,
181
+ J as SettingsNavigation,
182
+ K as SettingsSection
183
+ };
@@ -42,3 +42,4 @@ export { MobileKeyboard, type MobileKeyboardProps, type MobileKeyboardSuggestion
42
42
  export { LinearProgress, CircularProgress, SegmentedProgress, StepsProgress, type LinearProgressProps, type CircularProgressProps, type SegmentedProgressProps, type StepsProgressProps, type ProgressSize, type ProgressColor, } from './Progress';
43
43
  export { SurfaceAnchoredLayer, type SurfaceAnchoredLayerProps } from './SurfaceAnchoredLayer';
44
44
  export { PersistentHorizontalScrollbar, type PersistentHorizontalScrollbarProps } from './PersistentHorizontalScrollbar';
45
+ export { SettingsLayout, SettingsNavigation, SettingsSection, SettingsList, SettingRow, type SettingsNavigationItem, type SettingsNavigationGroup, type SettingsNavigationProps, type SettingsSectionProps, type SettingRowProps, } from './Settings';