@adea-ai/ui 0.61.1 → 0.63.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.
Files changed (130) hide show
  1. package/README.md +94 -6
  2. package/dist/LICENSE +201 -0
  3. package/dist/NOTICE +101 -0
  4. package/dist/components/composites/account-menu/index.js +2 -0
  5. package/dist/components/composites/appearance-editor/appearance-choices.d.ts +5 -0
  6. package/dist/components/composites/appearance-editor/appearance-choices.d.ts.map +1 -0
  7. package/dist/components/composites/appearance-editor/appearance-choices.js +211 -0
  8. package/dist/components/composites/appearance-editor/appearance-choices.js.map +1 -0
  9. package/dist/components/composites/appearance-editor/appearance-editor.d.ts +15 -0
  10. package/dist/components/composites/appearance-editor/appearance-editor.d.ts.map +1 -0
  11. package/dist/components/composites/appearance-editor/appearance-editor.js +280 -0
  12. package/dist/components/composites/appearance-editor/appearance-editor.js.map +1 -0
  13. package/dist/components/composites/appearance-editor/appearance-rows.d.ts +18 -0
  14. package/dist/components/composites/appearance-editor/appearance-rows.d.ts.map +1 -0
  15. package/dist/components/composites/appearance-editor/appearance-rows.js +101 -0
  16. package/dist/components/composites/appearance-editor/appearance-rows.js.map +1 -0
  17. package/dist/components/composites/appearance-editor/appearance-types.d.ts +42 -0
  18. package/dist/components/composites/appearance-editor/appearance-types.d.ts.map +1 -0
  19. package/dist/components/composites/appearance-editor/index.d.ts +4 -0
  20. package/dist/components/composites/appearance-editor/index.d.ts.map +1 -0
  21. package/dist/components/composites/appearance-editor/index.js +3 -0
  22. package/dist/components/composites/appearance-editor/theme-preview.d.ts +17 -0
  23. package/dist/components/composites/appearance-editor/theme-preview.d.ts.map +1 -0
  24. package/dist/components/composites/appearance-editor/theme-preview.js +158 -0
  25. package/dist/components/composites/appearance-editor/theme-preview.js.map +1 -0
  26. package/dist/components/composites/list-row/index.js +2 -0
  27. package/dist/components/composites/settings/index.js +2 -0
  28. package/dist/components/composites/stat/index.js +2 -0
  29. package/dist/components/composites/update-dialog/index.js +2 -0
  30. package/dist/components/composites/workspace-mark/index.js +2 -0
  31. package/dist/components/conversation/index.js +6 -0
  32. package/dist/components/layout/app-shell/index.js +2 -0
  33. package/dist/components/layout/page/index.js +2 -0
  34. package/dist/components/layout/panel/index.js +2 -0
  35. package/dist/components/layout/side-rail/index.js +3 -0
  36. package/dist/components/layout/sidebar-nav/index.js +2 -0
  37. package/dist/components/layout/status-bar/index.js +2 -0
  38. package/dist/components/layout/top-bar/index.js +2 -0
  39. package/dist/components/motion/index.js +2 -2
  40. package/dist/components/theme/index.js +5 -0
  41. package/dist/components/ui/accordion/index.js +2 -0
  42. package/dist/components/ui/alert/index.js +2 -0
  43. package/dist/components/ui/alert-dialog/index.js +2 -0
  44. package/dist/components/ui/aspect-ratio/index.js +2 -0
  45. package/dist/components/ui/avatar/index.js +2 -0
  46. package/dist/components/ui/badge/index.js +2 -0
  47. package/dist/components/ui/board/index.js +2 -0
  48. package/dist/components/ui/breadcrumb/index.js +2 -0
  49. package/dist/components/ui/button/index.js +2 -0
  50. package/dist/components/ui/button-group/index.js +2 -0
  51. package/dist/components/ui/calendar/index.js +2 -0
  52. package/dist/components/ui/card/index.js +2 -0
  53. package/dist/components/ui/carousel/index.js +2 -0
  54. package/dist/components/ui/chart/index.js +2 -0
  55. package/dist/components/ui/checkbox/index.js +2 -0
  56. package/dist/components/ui/code-block/index.js +2 -0
  57. package/dist/components/ui/collapsible/index.js +2 -0
  58. package/dist/components/ui/combobox/index.js +2 -0
  59. package/dist/components/ui/command/index.js +2 -0
  60. package/dist/components/ui/context-menu/index.js +2 -0
  61. package/dist/components/ui/detail-panel/index.js +2 -0
  62. package/dist/components/ui/dialog/index.js +2 -0
  63. package/dist/components/ui/diff-block/index.js +2 -0
  64. package/dist/components/ui/drawer/index.js +2 -0
  65. package/dist/components/ui/dropdown-menu/index.js +2 -0
  66. package/dist/components/ui/empty/index.js +2 -0
  67. package/dist/components/ui/entity-icon/index.js +2 -0
  68. package/dist/components/ui/field/index.js +2 -0
  69. package/dist/components/ui/hover-card/index.js +2 -0
  70. package/dist/components/ui/input/index.js +2 -0
  71. package/dist/components/ui/input-group/index.js +2 -0
  72. package/dist/components/ui/input-otp/index.js +2 -0
  73. package/dist/components/ui/item/index.js +2 -0
  74. package/dist/components/ui/kbd/index.js +2 -0
  75. package/dist/components/ui/label/index.js +2 -0
  76. package/dist/components/ui/menubar/index.js +2 -0
  77. package/dist/components/ui/modal-dialog/index.js +2 -0
  78. package/dist/components/ui/navigation-menu/index.js +2 -0
  79. package/dist/components/ui/pagination/index.js +2 -0
  80. package/dist/components/ui/popover/index.js +2 -0
  81. package/dist/components/ui/progress/index.js +2 -0
  82. package/dist/components/ui/radio-group/index.js +2 -0
  83. package/dist/components/ui/resizable/index.js +2 -0
  84. package/dist/components/ui/scroll-area/index.js +2 -0
  85. package/dist/components/ui/select/index.js +2 -0
  86. package/dist/components/ui/select/select.d.ts +5 -1
  87. package/dist/components/ui/select/select.d.ts.map +1 -1
  88. package/dist/components/ui/select/select.js +24 -20
  89. package/dist/components/ui/select/select.js.map +1 -1
  90. package/dist/components/ui/separator/index.js +2 -0
  91. package/dist/components/ui/sheet/index.js +2 -0
  92. package/dist/components/ui/skeleton/index.js +2 -0
  93. package/dist/components/ui/slider/index.js +2 -0
  94. package/dist/components/ui/spinner/index.js +2 -0
  95. package/dist/components/ui/status-chip/index.js +2 -0
  96. package/dist/components/ui/switch/index.js +2 -0
  97. package/dist/components/ui/table/index.js +2 -0
  98. package/dist/components/ui/tabs/index.js +2 -0
  99. package/dist/components/ui/textarea/index.js +2 -0
  100. package/dist/components/ui/toast/index.js +2 -0
  101. package/dist/components/ui/toggle/index.js +2 -0
  102. package/dist/components/ui/toggle-group/index.js +2 -0
  103. package/dist/components/ui/tooltip/index.js +2 -0
  104. package/dist/index.d.ts +3 -4
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.js +3 -3
  107. package/dist/r/appearance-editor.json +51 -0
  108. package/dist/r/lib.json +1 -1
  109. package/dist/r/registry.json +52 -1
  110. package/dist/r/src/components/composites/appearance-editor/appearance-choices.tsx +173 -0
  111. package/dist/r/src/components/composites/appearance-editor/appearance-editor.tsx +239 -0
  112. package/dist/r/src/components/composites/appearance-editor/appearance-rows.tsx +122 -0
  113. package/dist/r/src/components/composites/appearance-editor/appearance-types.ts +40 -0
  114. package/dist/r/src/components/composites/appearance-editor/index.ts +12 -0
  115. package/dist/r/src/components/composites/appearance-editor/theme-preview.tsx +128 -0
  116. package/dist/r/src/components/ui/select/select.tsx +8 -3
  117. package/package.json +11 -9
  118. package/registry.json +52 -1
  119. package/src/components/composites/appearance-editor/appearance-choices.tsx +173 -0
  120. package/src/components/composites/appearance-editor/appearance-editor.tsx +239 -0
  121. package/src/components/composites/appearance-editor/appearance-rows.tsx +122 -0
  122. package/src/components/composites/appearance-editor/appearance-types.ts +40 -0
  123. package/src/components/composites/appearance-editor/index.ts +12 -0
  124. package/src/components/composites/appearance-editor/theme-preview.tsx +128 -0
  125. package/src/components/ui/select/select.tsx +8 -3
  126. package/src/index.ts +3 -4
  127. package/dist/components/ui/diff-block/diff-block.test.d.ts +0 -2
  128. package/dist/components/ui/diff-block/diff-block.test.d.ts.map +0 -1
  129. package/dist/lib/keyed-rows.test.d.ts +0 -2
  130. package/dist/lib/keyed-rows.test.d.ts.map +0 -1
@@ -0,0 +1,158 @@
1
+ import { cn } from "../../../lib/utils.js";
2
+ import { className, createComponent, effect, insert, setStyleProperty, template } from "solid-js/web";
3
+ import { For } from "solid-js";
4
+ //#region src/components/composites/appearance-editor/theme-preview.tsx
5
+ var _tmpl$ = /*#__PURE__*/ template(`<span class="h-[5px] rounded-[3px]">`);
6
+ var _tmpl$2 = /*#__PURE__*/ template(`<span data-theme-miniature aria-hidden=true><span class="flex h-full w-11 shrink-0 flex-col gap-[7px] overflow-hidden px-2 pt-3.5"></span><span class="my-2 mr-2 flex min-w-0 flex-1 flex-col gap-[7px] overflow-hidden rounded-md border border-(--appearance-preview-border) p-2.5">`);
7
+ var _tmpl$3 = /*#__PURE__*/ template(`<span aria-hidden=true><span class="h-full w-1/2 overflow-hidden"></span><span class="h-full w-1/2 overflow-hidden">`);
8
+ var _tmpl$4 = /*#__PURE__*/ template(`<span aria-hidden=true>`);
9
+ var _tmpl$5 = /*#__PURE__*/ template(`<span class="h-full w-1/3">`);
10
+ function Bar(props) {
11
+ return (() => {
12
+ var _el$ = _tmpl$();
13
+ effect((_p$) => {
14
+ var _v$ = `${Math.round(props.fraction * 100)}%`, _v$2 = props.color, _v$3 = props.opacity;
15
+ _v$ !== _p$.e && setStyleProperty(_el$, "width", _p$.e = _v$);
16
+ _v$2 !== _p$.t && setStyleProperty(_el$, "background-color", _p$.t = _v$2);
17
+ _v$3 !== _p$.a && setStyleProperty(_el$, "opacity", _p$.a = _v$3);
18
+ return _p$;
19
+ }, {
20
+ e: void 0,
21
+ t: void 0,
22
+ a: void 0
23
+ });
24
+ return _el$;
25
+ })();
26
+ }
27
+ function ThemeMiniature(props) {
28
+ return (() => {
29
+ var _el$2 = _tmpl$2(), _el$3 = _el$2.firstChild, _el$4 = _el$3.nextSibling;
30
+ insert(_el$3, createComponent(Bar, {
31
+ fraction: .7,
32
+ opacity: .34,
33
+ get color() {
34
+ return props.theme.colors.foreground;
35
+ }
36
+ }), null);
37
+ insert(_el$3, createComponent(Bar, {
38
+ fraction: 1,
39
+ opacity: .22,
40
+ get color() {
41
+ return props.theme.colors.foreground;
42
+ }
43
+ }), null);
44
+ insert(_el$3, createComponent(Bar, {
45
+ fraction: .85,
46
+ opacity: .22,
47
+ get color() {
48
+ return props.theme.colors.foreground;
49
+ }
50
+ }), null);
51
+ insert(_el$3, createComponent(Bar, {
52
+ fraction: 1,
53
+ opacity: .22,
54
+ get color() {
55
+ return props.theme.colors.foreground;
56
+ }
57
+ }), null);
58
+ insert(_el$4, createComponent(Bar, {
59
+ fraction: .62,
60
+ opacity: .34,
61
+ get color() {
62
+ return props.theme.colors.foreground;
63
+ }
64
+ }), null);
65
+ insert(_el$4, createComponent(Bar, {
66
+ fraction: .88,
67
+ opacity: .22,
68
+ get color() {
69
+ return props.theme.colors.foreground;
70
+ }
71
+ }), null);
72
+ insert(_el$4, createComponent(Bar, {
73
+ fraction: .76,
74
+ opacity: .22,
75
+ get color() {
76
+ return props.theme.colors.foreground;
77
+ }
78
+ }), null);
79
+ insert(_el$4, createComponent(Bar, {
80
+ fraction: .52,
81
+ opacity: .22,
82
+ get color() {
83
+ return props.theme.colors.foreground;
84
+ }
85
+ }), null);
86
+ effect((_p$) => {
87
+ var _v$4 = cn("flex size-full overflow-hidden", {
88
+ "rounded-md": !props.corners || props.corners === "all",
89
+ "rounded-l-md": props.corners === "left",
90
+ "rounded-r-md": props.corners === "right"
91
+ }, props.class), _v$5 = props.theme.colors.surface, _v$6 = props.theme.colors.background, _v$7 = props.theme.colors.border;
92
+ _v$4 !== _p$.e && className(_el$2, _p$.e = _v$4);
93
+ _v$5 !== _p$.t && setStyleProperty(_el$2, "background-color", _p$.t = _v$5);
94
+ _v$6 !== _p$.a && setStyleProperty(_el$4, "background-color", _p$.a = _v$6);
95
+ _v$7 !== _p$.o && setStyleProperty(_el$4, "--appearance-preview-border", _p$.o = _v$7);
96
+ return _p$;
97
+ }, {
98
+ e: void 0,
99
+ t: void 0,
100
+ a: void 0,
101
+ o: void 0
102
+ });
103
+ return _el$2;
104
+ })();
105
+ }
106
+ function ThemeMiniatureSplit(props) {
107
+ return (() => {
108
+ var _el$5 = _tmpl$3(), _el$6 = _el$5.firstChild, _el$7 = _el$6.nextSibling;
109
+ insert(_el$6, createComponent(ThemeMiniature, {
110
+ get theme() {
111
+ return props.light;
112
+ },
113
+ corners: "left"
114
+ }));
115
+ insert(_el$7, createComponent(ThemeMiniature, {
116
+ get theme() {
117
+ return props.dark;
118
+ },
119
+ corners: "right"
120
+ }));
121
+ effect(() => className(_el$5, cn("flex size-full", props.class)));
122
+ return _el$5;
123
+ })();
124
+ }
125
+ function PalettePreview(props) {
126
+ const bands = () => [
127
+ props.theme.colors.surface,
128
+ props.theme.colors.background,
129
+ props.theme.colors.accent
130
+ ];
131
+ return (() => {
132
+ var _el$8 = _tmpl$4();
133
+ insert(_el$8, createComponent(For, {
134
+ get each() {
135
+ return bands();
136
+ },
137
+ children: (band) => (() => {
138
+ var _el$9 = _tmpl$5();
139
+ setStyleProperty(_el$9, "background-color", band);
140
+ return _el$9;
141
+ })()
142
+ }));
143
+ effect((_p$) => {
144
+ var _v$8 = cn("flex h-[18px] w-[30px] shrink-0 overflow-hidden rounded-[5px] border border-(--appearance-preview-border)", props.class), _v$9 = props.theme.colors.border;
145
+ _v$8 !== _p$.e && className(_el$8, _p$.e = _v$8);
146
+ _v$9 !== _p$.t && setStyleProperty(_el$8, "--appearance-preview-border", _p$.t = _v$9);
147
+ return _p$;
148
+ }, {
149
+ e: void 0,
150
+ t: void 0
151
+ });
152
+ return _el$8;
153
+ })();
154
+ }
155
+ //#endregion
156
+ export { PalettePreview, ThemeMiniature, ThemeMiniatureSplit };
157
+
158
+ //# sourceMappingURL=theme-preview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-preview.js","names":["AdeaTheme","For","cn","ThemeMiniatureProps","theme","corners","class","Bar","props","fraction","opacity","color","_el$","_tmpl$","_$effect","_p$","_v$","Math","round","_v$2","_v$3","e","_$setStyleProperty","t","a","undefined","ThemeMiniature","_el$2","_tmpl$2","_el$3","firstChild","_el$4","nextSibling","_$insert","_$createComponent","colors","foreground","_v$4","_v$5","surface","_v$6","background","_v$7","border","_$className","o","ThemeMiniatureSplit","light","dark","_el$5","_tmpl$3","_el$6","_el$7","PalettePreview","bands","accent","_el$8","_tmpl$4","each","children","band","_el$9","_tmpl$5","_v$8","_v$9","_$setStyleProperty","_$createComponent","_$className"],"sources":["../../../../src/components/composites/appearance-editor/theme-preview.tsx"],"sourcesContent":["/*\n * MIT License\n *\n * Copyright (c) 2026 Wing\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n/*\n * Substantially translated from Zeron crates/ui/src/settings/appearance.rs\n * `bar`, `miniature`, `miniature_split`, and `palette_preview`, revision\n * 30a9a9537c5ec96226c87f4bf349b6f77c5dfb59, via Adea's existing\n * packages/ui/src/components/theme-preview.tsx adaptation.\n * Retains the sidebar/pane decomposition, exact bar fractions and opacity,\n * split outer corners, and three-band palette strip. GPUI and Adea's local\n * ThemeVariant are replaced by Solid and the canonical AdeaTheme schema.\n * Dynamic inline colors are theme data; no palette is authored here.\n */\nimport type { AdeaTheme } from '@adea-ai/themes'\nimport { For } from 'solid-js'\nimport { cn } from '#lib/utils'\n\nexport type ThemeMiniatureProps = {\n theme: AdeaTheme\n corners?: 'all' | 'left' | 'right'\n class?: string\n}\n\nfunction Bar(props: { fraction: number; opacity: number; color: string }) {\n return (\n <span\n class=\"h-[5px] rounded-[3px]\"\n style={{\n width: `${Math.round(props.fraction * 100)}%`,\n 'background-color': props.color,\n opacity: props.opacity,\n }}\n />\n )\n}\n\nexport function ThemeMiniature(props: ThemeMiniatureProps) {\n return (\n <span\n data-theme-miniature\n aria-hidden=\"true\"\n class={cn(\n 'flex size-full overflow-hidden',\n {\n 'rounded-md': !props.corners || props.corners === 'all',\n 'rounded-l-md': props.corners === 'left',\n 'rounded-r-md': props.corners === 'right',\n },\n props.class\n )}\n style={{ 'background-color': props.theme.colors.surface }}\n >\n <span class=\"flex h-full w-11 shrink-0 flex-col gap-[7px] overflow-hidden px-2 pt-3.5\">\n <Bar fraction={0.7} opacity={0.34} color={props.theme.colors.foreground} />\n <Bar fraction={1} opacity={0.22} color={props.theme.colors.foreground} />\n <Bar fraction={0.85} opacity={0.22} color={props.theme.colors.foreground} />\n <Bar fraction={1} opacity={0.22} color={props.theme.colors.foreground} />\n </span>\n <span\n class=\"my-2 mr-2 flex min-w-0 flex-1 flex-col gap-[7px] overflow-hidden rounded-md border border-(--appearance-preview-border) p-2.5\"\n style={{\n 'background-color': props.theme.colors.background,\n '--appearance-preview-border': props.theme.colors.border,\n }}\n >\n <Bar fraction={0.62} opacity={0.34} color={props.theme.colors.foreground} />\n <Bar fraction={0.88} opacity={0.22} color={props.theme.colors.foreground} />\n <Bar fraction={0.76} opacity={0.22} color={props.theme.colors.foreground} />\n <Bar fraction={0.52} opacity={0.22} color={props.theme.colors.foreground} />\n </span>\n </span>\n )\n}\n\nexport function ThemeMiniatureSplit(props: { light: AdeaTheme; dark: AdeaTheme; class?: string }) {\n return (\n <span class={cn('flex size-full', props.class)} aria-hidden=\"true\">\n <span class=\"h-full w-1/2 overflow-hidden\">\n <ThemeMiniature theme={props.light} corners=\"left\" />\n </span>\n <span class=\"h-full w-1/2 overflow-hidden\">\n <ThemeMiniature theme={props.dark} corners=\"right\" />\n </span>\n </span>\n )\n}\n\nexport function PalettePreview(props: { theme: AdeaTheme; class?: string }) {\n const bands = () => [\n props.theme.colors.surface,\n props.theme.colors.background,\n props.theme.colors.accent,\n ]\n return (\n <span\n class={cn(\n 'flex h-[18px] w-[30px] shrink-0 overflow-hidden rounded-[5px] border border-(--appearance-preview-border)',\n props.class\n )}\n aria-hidden=\"true\"\n style={{ '--appearance-preview-border': props.theme.colors.border }}\n >\n <For each={bands()}>\n {(band) => <span class=\"h-full w-1/3\" style={{ 'background-color': band }} />}\n </For>\n </span>\n )\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { ListGroup, ListRow } from "./list-row.js";
2
+ export { ListGroup, ListRow };
@@ -0,0 +1,2 @@
1
+ import { SettingsField, SettingsPage, SettingsRow, SettingsSection } from "./settings.js";
2
+ export { SettingsField, SettingsPage, SettingsRow, SettingsSection };
@@ -0,0 +1,2 @@
1
+ import { PropertyList, PropertyRow, PropertyTerm, PropertyValue, Stat, StatGroup } from "./stat.js";
2
+ export { PropertyList, PropertyRow, PropertyTerm, PropertyValue, Stat, StatGroup };
@@ -0,0 +1,2 @@
1
+ import { UpdateDialog } from "./update-dialog.js";
2
+ export { UpdateDialog };
@@ -0,0 +1,2 @@
1
+ import { WorkspaceMark } from "./workspace-mark.js";
2
+ export { WorkspaceMark };
@@ -0,0 +1,6 @@
1
+ import { ConversationAvatar } from "./conversation-avatar.js";
2
+ import { ConversationSurface } from "./conversation-surface.js";
3
+ import { ComposerAttachmentButton, ComposerHint, MessageComposer } from "./message-composer.js";
4
+ import { MessageBody, MessageDayDivider, MessageGroup, MessageRow } from "./message-row.js";
5
+ import { AttachmentCard, ThreadPanel } from "./thread-panel.js";
6
+ export { AttachmentCard, ComposerAttachmentButton, ComposerHint, ConversationAvatar, ConversationSurface, MessageBody, MessageComposer, MessageDayDivider, MessageGroup, MessageRow, ThreadPanel };
@@ -0,0 +1,2 @@
1
+ import { AppShell, AppShellBody, AppShellContent, AppShellMain } from "./app-shell.js";
2
+ export { AppShell, AppShellBody, AppShellContent, AppShellMain };
@@ -0,0 +1,2 @@
1
+ import { Page, PageHeader, PageHeaderActions, PageHeaderContent, PageHeaderDescription, PageHeaderTitle, PageSection } from "./page.js";
2
+ export { Page, PageHeader, PageHeaderActions, PageHeaderContent, PageHeaderDescription, PageHeaderTitle, PageSection };
@@ -0,0 +1,2 @@
1
+ import { Panel, PanelActions, PanelBody, PanelCard, PanelDescription, PanelFooter, PanelHeader, PanelPlaceholder, PanelTitle, PanelToolbar } from "./panel.js";
2
+ export { Panel, PanelActions, PanelBody, PanelCard, PanelDescription, PanelFooter, PanelHeader, PanelPlaceholder, PanelTitle, PanelToolbar };
@@ -0,0 +1,3 @@
1
+ import { useSideRail } from "./side-rail-context.js";
2
+ import { SideRail, SideRailButton, SideRailContent, SideRailFooter, SideRailHeader, SideRailItem, SideRailSection } from "./side-rail.js";
3
+ export { SideRail, SideRailButton, SideRailContent, SideRailFooter, SideRailHeader, SideRailItem, SideRailSection, useSideRail };
@@ -0,0 +1,2 @@
1
+ import { SidebarNav, SidebarNavButton, SidebarNavContent, SidebarNavFooter, SidebarNavHeader, SidebarNavItem, SidebarNavSection, SidebarNavTitle, sidebarNavItemClass, sidebarNavItemStateClass } from "./sidebar-nav.js";
2
+ export { SidebarNav, SidebarNavButton, SidebarNavContent, SidebarNavFooter, SidebarNavHeader, SidebarNavItem, SidebarNavSection, SidebarNavTitle, sidebarNavItemClass, sidebarNavItemStateClass };
@@ -0,0 +1,2 @@
1
+ import { StatusBar, StatusBarItem, StatusBarSpacer } from "./status-bar.js";
2
+ export { StatusBar, StatusBarItem, StatusBarSpacer };
@@ -0,0 +1,2 @@
1
+ import { TopBar, TopBarBreadcrumb, TopBarPill, TopBarSearch, TopBarSection, TopBarTitle } from "./top-bar.js";
2
+ export { TopBar, TopBarBreadcrumb, TopBarPill, TopBarSearch, TopBarSection, TopBarTitle };
@@ -1,3 +1,3 @@
1
- import { Presence as Presence$1 } from "./presence.js";
1
+ import { Presence } from "./presence.js";
2
2
  import { Motion } from "solid-motionone";
3
- export { Motion, Presence$1 as Presence };
3
+ export { Motion, Presence };
@@ -0,0 +1,5 @@
1
+ import { ThemePicker, ThemePreview, ThemeSwatch } from "./theme-picker.js";
2
+ import { ThemeProvider, defaultThemeSelection, inlineScriptLiteral, resolvedDensity, themeScript, useTheme } from "./theme-provider.js";
3
+ import { AppearancePanel } from "./appearance-panel.js";
4
+ import { ThemeToggle } from "./theme-toggle.js";
5
+ export { AppearancePanel, ThemePicker, ThemePreview, ThemeProvider, ThemeSwatch, ThemeToggle, defaultThemeSelection, inlineScriptLiteral, resolvedDensity, themeScript, useTheme };
@@ -0,0 +1,2 @@
1
+ import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "./accordion.js";
2
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };
@@ -0,0 +1,2 @@
1
+ import { Alert, AlertDescription, AlertTitle, alertVariants } from "./alert.js";
2
+ export { Alert, AlertDescription, AlertTitle, alertVariants };
@@ -0,0 +1,2 @@
1
+ import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from "./alert-dialog.js";
2
+ export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger };
@@ -0,0 +1,2 @@
1
+ import { AspectRatio } from "./aspect-ratio.js";
2
+ export { AspectRatio };
@@ -0,0 +1,2 @@
1
+ import { Avatar, AvatarFallback, AvatarImage, initialsFrom } from "./avatar.js";
2
+ export { Avatar, AvatarFallback, AvatarImage, initialsFrom };
@@ -0,0 +1,2 @@
1
+ import { Badge, badgeVariants } from "./badge.js";
2
+ export { Badge, badgeVariants };
@@ -0,0 +1,2 @@
1
+ import { Board, BoardCardBody, BoardCardTitle, boardCardTitleVariants } from "./board.js";
2
+ export { Board, BoardCardBody, BoardCardTitle, boardCardTitleVariants };
@@ -0,0 +1,2 @@
1
+ import { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbSeparator } from "./breadcrumb.js";
2
+ export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbSeparator };
@@ -0,0 +1,2 @@
1
+ import { Button, buttonVariants } from "./button.js";
2
+ export { Button, buttonVariants };
@@ -0,0 +1,2 @@
1
+ import { ButtonGroup, ButtonGroupSeparator, ButtonGroupText } from "./button-group.js";
2
+ export { ButtonGroup, ButtonGroupSeparator, ButtonGroupText };
@@ -0,0 +1,2 @@
1
+ import { CalendarSurface, DatePicker } from "./calendar.js";
2
+ export { CalendarSurface, DatePicker };
@@ -0,0 +1,2 @@
1
+ import { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "./card.js";
2
+ export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
@@ -0,0 +1,2 @@
1
+ import { Carousel, CarouselSlide } from "./carousel.js";
2
+ export { Carousel, CarouselSlide };
@@ -0,0 +1,2 @@
1
+ import { BarChart, BubbleChart, ChartFrame, ChartLegend, DonutChart, LineChart, PolarAreaChart, RadarChart, ScatterChart, chartOptions, chartSeriesColors, registerChartPiece } from "./chart.js";
2
+ export { BarChart, BubbleChart, ChartFrame, ChartLegend, DonutChart, LineChart, PolarAreaChart, RadarChart, ScatterChart, chartOptions, chartSeriesColors, registerChartPiece };
@@ -0,0 +1,2 @@
1
+ import { Checkbox, CheckboxDescription, CheckboxLabel } from "./checkbox.js";
2
+ export { Checkbox, CheckboxDescription, CheckboxLabel };
@@ -0,0 +1,2 @@
1
+ import { CodeBlock, InlineCode, TALL_CODE_BLOCK_PX } from "./code-block.js";
2
+ export { CodeBlock, InlineCode, TALL_CODE_BLOCK_PX };
@@ -0,0 +1,2 @@
1
+ import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "./collapsible.js";
2
+ export { Collapsible, CollapsibleContent, CollapsibleTrigger };
@@ -0,0 +1,2 @@
1
+ import { Combobox, ComboboxClear, ComboboxContent, ComboboxControl, ComboboxInput, ComboboxItem, ComboboxSection, ComboboxTrigger } from "./combobox.js";
2
+ export { Combobox, ComboboxClear, ComboboxContent, ComboboxControl, ComboboxInput, ComboboxItem, ComboboxSection, ComboboxTrigger };
@@ -0,0 +1,2 @@
1
+ import { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandLoading, CommandSeparator, CommandShortcut } from "./command.js";
2
+ export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandLoading, CommandSeparator, CommandShortcut };
@@ -0,0 +1,2 @@
1
+ import { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger } from "./context-menu.js";
2
+ export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger };
@@ -0,0 +1,2 @@
1
+ import { DetailPanel, DetailPanelBody, DetailPanelField, DetailPanelHeader, DetailPanelSection } from "./detail-panel.js";
2
+ export { DetailPanel, DetailPanelBody, DetailPanelField, DetailPanelHeader, DetailPanelSection };
@@ -0,0 +1,2 @@
1
+ import { Dialog, DialogClose, DialogCloseButton, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from "./dialog.js";
2
+ export { Dialog, DialogClose, DialogCloseButton, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
@@ -0,0 +1,2 @@
1
+ import { DiffBlock, DiffSummary, diffLineVariants, diffStats, diffTargetPath, parseDiff } from "./diff-block.js";
2
+ export { DiffBlock, DiffSummary, diffLineVariants, diffStats, diffTargetPath, parseDiff };
@@ -0,0 +1,2 @@
1
+ import { Drawer, DrawerBody, DrawerCloseButton, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerTitle, DrawerTrigger } from "./drawer.js";
2
+ export { Drawer, DrawerBody, DrawerCloseButton, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerTitle, DrawerTrigger };
@@ -0,0 +1,2 @@
1
+ import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from "./dropdown-menu.js";
2
+ export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger };
@@ -0,0 +1,2 @@
1
+ import { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle } from "./empty.js";
2
+ export { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle };
@@ -0,0 +1,2 @@
1
+ import { EntityIcon, entityIconVariants, monogram } from "./entity-icon.js";
2
+ export { EntityIcon, entityIconVariants, monogram };
@@ -0,0 +1,2 @@
1
+ import { Field, FieldDescription, FieldError, FieldInput, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTextArea } from "./field.js";
2
+ export { Field, FieldDescription, FieldError, FieldInput, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTextArea };
@@ -0,0 +1,2 @@
1
+ import { HoverCard, HoverCardContent, HoverCardTrigger } from "./hover-card.js";
2
+ export { HoverCard, HoverCardContent, HoverCardTrigger };
@@ -0,0 +1,2 @@
1
+ import { Input } from "./input.js";
2
+ export { Input };
@@ -0,0 +1,2 @@
1
+ import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText } from "./input-group.js";
2
+ export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText };
@@ -0,0 +1,2 @@
1
+ import { InputOtp, InputOtpCaret } from "./input-otp.js";
2
+ export { InputOtp, InputOtpCaret };
@@ -0,0 +1,2 @@
1
+ import { Item, ItemDescription, ItemEmpty, ItemGroup, ItemGroupEntry, ItemTitle, itemVariants } from "./item.js";
2
+ export { Item, ItemDescription, ItemEmpty, ItemGroup, ItemGroupEntry, ItemTitle, itemVariants };
@@ -0,0 +1,2 @@
1
+ import { Kbd, KbdGroup } from "./kbd.js";
2
+ export { Kbd, KbdGroup };
@@ -0,0 +1,2 @@
1
+ import { Label } from "./label.js";
2
+ export { Label };
@@ -0,0 +1,2 @@
1
+ import { Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger } from "./menubar.js";
2
+ export { Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger };
@@ -0,0 +1,2 @@
1
+ import { ModalDialog } from "./modal-dialog.js";
2
+ export { ModalDialog };
@@ -0,0 +1,2 @@
1
+ import { NavigationMenu, NavigationMenuContent, NavigationMenuGroup, NavigationMenuGroupLabel, NavigationMenuItem, NavigationMenuMenu, NavigationMenuSeparator, NavigationMenuTrigger, NavigationMenuViewport } from "./navigation-menu.js";
2
+ export { NavigationMenu, NavigationMenuContent, NavigationMenuGroup, NavigationMenuGroupLabel, NavigationMenuItem, NavigationMenuMenu, NavigationMenuSeparator, NavigationMenuTrigger, NavigationMenuViewport };
@@ -0,0 +1,2 @@
1
+ import { Pagination, PaginationEllipsis, PaginationItem, PaginationNext, PaginationPrevious } from "./pagination.js";
2
+ export { Pagination, PaginationEllipsis, PaginationItem, PaginationNext, PaginationPrevious };
@@ -0,0 +1,2 @@
1
+ import { Popover, PopoverAnchor, PopoverCloseButton, PopoverContent, PopoverDescription, PopoverTitle, PopoverTrigger } from "./popover.js";
2
+ export { Popover, PopoverAnchor, PopoverCloseButton, PopoverContent, PopoverDescription, PopoverTitle, PopoverTrigger };
@@ -0,0 +1,2 @@
1
+ import { Progress } from "./progress.js";
2
+ export { Progress };
@@ -0,0 +1,2 @@
1
+ import { RadioGroup, RadioGroupItem } from "./radio-group.js";
2
+ export { RadioGroup, RadioGroupItem };
@@ -0,0 +1,2 @@
1
+ import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from "./resizable.js";
2
+ export { ResizableHandle, ResizablePanel, ResizablePanelGroup };
@@ -0,0 +1,2 @@
1
+ import { ScrollArea } from "./scroll-area.js";
2
+ export { ScrollArea };
@@ -0,0 +1,2 @@
1
+ import { Select, SelectChevronsUpDown, SelectContent, SelectItem, SelectLabel, SelectSection, SelectTrigger, SelectValue } from "./select.js";
2
+ export { Select, SelectChevronsUpDown, SelectContent, SelectItem, SelectLabel, SelectSection, SelectTrigger, SelectValue };
@@ -53,7 +53,11 @@ export declare function SelectValue(props: SelectValueProps): import("solid-js")
53
53
  * which is what makes a Select able to render a typed option rather than a
54
54
  * string; `children` here is for content above the list, such as a filter hint.
55
55
  */
56
- export declare function SelectContent(props: ComponentProps<typeof KobalteSelect.Content>): import("solid-js").JSX.Element;
56
+ export type SelectContentProps = ComponentProps<typeof KobalteSelect.Content> & {
57
+ /** Keep a nested menu inside its enclosing modal's accessible subtree. */
58
+ portalMount?: HTMLElement;
59
+ };
60
+ export declare function SelectContent(props: SelectContentProps): import("solid-js").JSX.Element;
57
61
  export declare function SelectItem(props: ComponentProps<typeof KobalteSelect.Item>): import("solid-js").JSX.Element;
58
62
  export declare function SelectSection(props: ComponentProps<typeof KobalteSelect.Section>): import("solid-js").JSX.Element;
59
63
  export declare function SelectLabel(props: ComponentProps<typeof KobalteSelect.Label>): import("solid-js").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/select/select.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAK9C;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,KAAK,EAC7C,KAAK,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,kCAG9D;AAED,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG;IAC9E,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACzB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,kCAgCtD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,KAAK,mBAAmB,GAAG,cAAc,CAAC,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAA;AAEjF,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,aAAa,CAAC,KAAK,CAAC,GAAG;IAC1E;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAA;IACzC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,mBAAmB,CAAA;CAC/B,CAAA;AAkBD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,kCAalD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,kCAuBhF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,kCAW1E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,kCAGhF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC,KAAK,CAAC,kCAQ5E;AAED,0EAA0E;AAC1E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,kCAEhE"}
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/select/select.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAK9C;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,KAAK,EAC7C,KAAK,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,kCAG9D;AAED,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG;IAC9E,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACzB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,kCAgCtD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,KAAK,mBAAmB,GAAG,cAAc,CAAC,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAA;AAEjF,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,aAAa,CAAC,KAAK,CAAC,GAAG;IAC1E;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAA;IACzC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,mBAAmB,CAAA;CAC/B,CAAA;AAkBD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,kCAalD;AAED;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,cAAc,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG;IAC9E,0EAA0E;IAC1E,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,CAAA;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,kCAuBtD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,kCAW1E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,kCAGhF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC,KAAK,CAAC,kCAQ5E;AAED,0EAA0E;AAC1E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,kCAEhE"}
@@ -83,27 +83,31 @@ function SelectValue(props) {
83
83
  return local.children ?? readLabel;
84
84
  } }));
85
85
  }
86
- /**
87
- * The option list. The items themselves come from the root's `itemComponent`,
88
- * which is what makes a Select able to render a typed option rather than a
89
- * string; `children` here is for content above the list, such as a filter hint.
90
- */
91
86
  function SelectContent(props) {
92
- const [local, rest] = splitProps(props, ["class", "children"]);
93
- return createComponent(Select.Portal, { get children() {
94
- return createComponent(Select.Content, mergeProps({ get ["class"]() {
95
- return cn("bg-popover text-popover-foreground rounded-xl border border-border shadow-lg", "z-(--z-menu) max-h-(--kb-popper-content-available-height) min-w-[8rem] origin-(--kb-select-content-transform-origin) overflow-y-auto overflow-x-hidden", "p-1", "data-expanded:animate-in data-expanded:fade-in-0 data-expanded:zoom-in-95", "data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", "data-expanded:duration-150 data-closed:duration-100", local.class);
96
- } }, rest, { get children() {
97
- return [
98
- memo(() => local.children),
99
- createComponent(Select.Listbox, { "class": "flex flex-col" }),
100
- createComponent(Select.Arrow, {
101
- "aria-hidden": "true",
102
- "class": popoverArrow
103
- })
104
- ];
105
- } }));
106
- } });
87
+ const [local, rest] = splitProps(props, [
88
+ "class",
89
+ "children",
90
+ "portalMount"
91
+ ]);
92
+ return createComponent(Select.Portal, {
93
+ get mount() {
94
+ return local.portalMount;
95
+ },
96
+ get children() {
97
+ return createComponent(Select.Content, mergeProps({ get ["class"]() {
98
+ return cn("bg-popover text-popover-foreground rounded-xl border border-border shadow-lg", "z-(--z-menu) max-h-(--kb-popper-content-available-height) min-w-[8rem] origin-(--kb-select-content-transform-origin) overflow-y-auto overflow-x-hidden", "p-1", "data-expanded:animate-in data-expanded:fade-in-0 data-expanded:zoom-in-95", "data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", "data-expanded:duration-150 data-closed:duration-100", local.class);
99
+ } }, rest, { get children() {
100
+ return [
101
+ memo(() => local.children),
102
+ createComponent(Select.Listbox, { "class": "flex flex-col" }),
103
+ createComponent(Select.Arrow, {
104
+ "aria-hidden": "true",
105
+ "class": popoverArrow
106
+ })
107
+ ];
108
+ } }));
109
+ }
110
+ });
107
111
  }
108
112
  function SelectItem(props) {
109
113
  const [local, rest] = splitProps(props, ["class", "children"]);
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","names":["Select","KobalteSelect","Check","ChevronDown","ChevronsUpDown","ComponentProps","Show","splitProps","menuContentPadding","menuItem","popoverArrow","cn","props","Option","OptGroup","_$createComponent","SelectTriggerProps","Trigger","size","hideIcon","SelectTrigger","local","rest","_$mergeProps","class","undefined","children","_$memo","when","Icon","SelectValueChildren","Value","SelectValueProps","optionLabel","option","LABEL_FIELDS","const","labelFromOption","field","value","Record","SelectValue","readLabel","state","selectedOption","SelectContent","Content","Portal","Listbox","Arrow","SelectItem","Item","ItemLabel","ItemIndicator","SelectSection","Section","SelectLabel","Label","SelectChevronsUpDown","Select","_$createComponent","KobalteSelect","_$mergeProps","_$memo"],"sources":["../../../../src/components/ui/select/select.tsx"],"sourcesContent":["import { Select as KobalteSelect } from '@kobalte/core/select'\nimport { Check, ChevronDown, ChevronsUpDown } from 'lucide-solid'\nimport type { ComponentProps } from 'solid-js'\nimport { Show, splitProps } from 'solid-js'\nimport { menuContentPadding, menuItem, popoverArrow } from '#lib/overlay'\nimport { cn } from '#lib/utils'\n\n/**\n * Select.\n *\n * A single choice from a list that is too long to show, or whose options are\n * only known at runtime. The distinction from RadioGroup is disclosure: a\n * Select hides the choices behind a click, which is right above roughly seven\n * options and wrong below it.\n *\n * `Select.Value` renders the human-readable label of the selection, not its\n * value — the reason a Select takes both `options` and `optionValue`/`optionText`\n * rather than a bare list of strings, and the reason the trigger never shows a\n * raw id.\n */\nexport function Select<Option, OptGroup = never>(\n props: ComponentProps<typeof KobalteSelect<Option, OptGroup>>\n) {\n return <KobalteSelect {...props} />\n}\n\nexport type SelectTriggerProps = ComponentProps<typeof KobalteSelect.Trigger> & {\n size?: 'sm' | 'md' | 'lg'\n /** Hide the chevron, e.g. when a caller draws its own affordance. */\n hideIcon?: boolean\n}\n\nexport function SelectTrigger(props: SelectTriggerProps) {\n const [local, rest] = splitProps(props, ['class', 'size', 'hideIcon', 'children'])\n\n return (\n <KobalteSelect.Trigger\n class={cn(\n 'border-input bg-transparent flex w-fit items-center justify-between gap-2 rounded-md border px-control-md',\n 'whitespace-nowrap transition-[color,box-shadow,border-color] ease-out outline-none',\n 'data-[placeholder-shown]:text-muted-foreground',\n 'hover:border-input',\n 'focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-primary-subtle',\n 'aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive-subtle',\n 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n '*:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2',\n '[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:size-4',\n {\n 'h-control-sm text-xs': local.size === 'sm',\n 'h-control-md text-sm': local.size === 'md' || local.size === undefined,\n 'h-control-lg text-sm': local.size === 'lg',\n },\n local.class\n )}\n {...rest}\n >\n {local.children}\n <Show when={!local.hideIcon}>\n <KobalteSelect.Icon class=\"text-muted-foreground\">\n <ChevronDown />\n </KobalteSelect.Icon>\n </Show>\n </KobalteSelect.Trigger>\n )\n}\n\n/**\n * What the trigger shows for the current selection.\n *\n * The default renderer is the reason a single-select needs no render prop at all.\n * Kobalte's own `Value` draws *only* its children, so a bare `<SelectValue />`\n * shows the placeholder and then goes blank the moment something is chosen: the\n * value is there, nothing paints it.\n *\n * Kobalte cannot supply a default itself, because an option is the caller's type\n * — it has no way to know which field is the label. So this reads a field by\n * convention: `label`, then `name`, then `textValue`. An option shaped\n * `{ value, label }` therefore needs nothing, and anything else passes\n * `optionLabel`.\n *\n * A multiple-select still supplies its own renderer, because \"3 selected\" is a\n * summary a caller has to phrase, not something a component can guess.\n */\ntype SelectValueChildren = ComponentProps<typeof KobalteSelect.Value>['children']\n\nexport type SelectValueProps = ComponentProps<typeof KobalteSelect.Value> & {\n /**\n * Read the display text from the selected option. Supply this when the option's\n * label does not live in a field called `label`, `name` or `textValue`.\n */\n optionLabel?: (option: unknown) => string\n /** Replace the default readout entirely, for a multiple-select summary. */\n children?: SelectValueChildren\n}\n\n/** Fields a label is read from, in order. See `SelectValueProps.optionLabel`. */\nconst LABEL_FIELDS = ['label', 'name', 'textValue'] as const\n\nfunction labelFromOption(option: unknown): string {\n if (option === null || typeof option !== 'object') {\n return typeof option === 'string' ? option : ''\n }\n\n for (const field of LABEL_FIELDS) {\n const value = (option as Record<string, unknown>)[field]\n if (typeof value === 'string') return value\n }\n\n return ''\n}\n\nexport function SelectValue(props: SelectValueProps) {\n const [local, rest] = splitProps(props, ['class', 'children', 'optionLabel'])\n\n const readLabel = (state: { selectedOption: () => unknown }): string => {\n const option = state.selectedOption()\n return local.optionLabel ? local.optionLabel(option) : labelFromOption(option)\n }\n\n return (\n <KobalteSelect.Value data-slot=\"select-value\" class={cn('truncate', local.class)} {...rest}>\n {local.children ?? (readLabel as unknown as SelectValueChildren)}\n </KobalteSelect.Value>\n )\n}\n\n/**\n * The option list. The items themselves come from the root's `itemComponent`,\n * which is what makes a Select able to render a typed option rather than a\n * string; `children` here is for content above the list, such as a filter hint.\n */\nexport function SelectContent(props: ComponentProps<typeof KobalteSelect.Content>) {\n const [local, rest] = splitProps(props, ['class', 'children'])\n\n return (\n <KobalteSelect.Portal>\n <KobalteSelect.Content\n class={cn(\n 'bg-popover text-popover-foreground rounded-xl border border-border shadow-lg',\n 'z-(--z-menu) max-h-(--kb-popper-content-available-height) min-w-[8rem] origin-(--kb-select-content-transform-origin) overflow-y-auto overflow-x-hidden',\n menuContentPadding,\n 'data-expanded:animate-in data-expanded:fade-in-0 data-expanded:zoom-in-95',\n 'data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n 'data-expanded:duration-150 data-closed:duration-100',\n local.class\n )}\n {...rest}\n >\n {local.children}\n <KobalteSelect.Listbox class=\"flex flex-col\" />\n <KobalteSelect.Arrow aria-hidden=\"true\" class={popoverArrow} />\n </KobalteSelect.Content>\n </KobalteSelect.Portal>\n )\n}\n\nexport function SelectItem(props: ComponentProps<typeof KobalteSelect.Item>) {\n const [local, rest] = splitProps(props, ['class', 'children'])\n\n return (\n <KobalteSelect.Item class={cn(menuItem, 'pe-8', local.class)} {...rest}>\n <KobalteSelect.ItemLabel>{local.children}</KobalteSelect.ItemLabel>\n <KobalteSelect.ItemIndicator class=\"absolute end-2 flex size-4 items-center justify-center\">\n <Check class=\"size-4\" />\n </KobalteSelect.ItemIndicator>\n </KobalteSelect.Item>\n )\n}\n\nexport function SelectSection(props: ComponentProps<typeof KobalteSelect.Section>) {\n const [local, rest] = splitProps(props, ['class'])\n return <KobalteSelect.Section class={cn('flex flex-col', local.class)} {...rest} />\n}\n\nexport function SelectLabel(props: ComponentProps<typeof KobalteSelect.Label>) {\n const [local, rest] = splitProps(props, ['class'])\n return (\n <KobalteSelect.Label\n class={cn('text-muted-foreground px-2 py-1.5 text-2xs font-medium uppercase', local.class)}\n {...rest}\n />\n )\n}\n\n/** The chevron pair used when a Select is composed by hand in a field. */\nexport function SelectChevronsUpDown(props: ComponentProps<'svg'>) {\n return <ChevronsUpDown aria-hidden=\"true\" {...props} />\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"select.js","names":["Select","KobalteSelect","Check","ChevronDown","ChevronsUpDown","ComponentProps","Show","splitProps","menuContentPadding","menuItem","popoverArrow","cn","props","Option","OptGroup","_$createComponent","SelectTriggerProps","Trigger","size","hideIcon","SelectTrigger","local","rest","_$mergeProps","class","undefined","children","_$memo","when","Icon","SelectValueChildren","Value","SelectValueProps","optionLabel","option","LABEL_FIELDS","const","labelFromOption","field","value","Record","SelectValue","readLabel","state","selectedOption","SelectContentProps","Content","portalMount","HTMLElement","SelectContent","Portal","mount","Listbox","Arrow","SelectItem","Item","ItemLabel","ItemIndicator","SelectSection","Section","SelectLabel","Label","SelectChevronsUpDown","Select","_$createComponent","KobalteSelect","_$mergeProps","_$memo"],"sources":["../../../../src/components/ui/select/select.tsx"],"sourcesContent":["import { Select as KobalteSelect } from '@kobalte/core/select'\nimport { Check, ChevronDown, ChevronsUpDown } from 'lucide-solid'\nimport type { ComponentProps } from 'solid-js'\nimport { Show, splitProps } from 'solid-js'\nimport { menuContentPadding, menuItem, popoverArrow } from '#lib/overlay'\nimport { cn } from '#lib/utils'\n\n/**\n * Select.\n *\n * A single choice from a list that is too long to show, or whose options are\n * only known at runtime. The distinction from RadioGroup is disclosure: a\n * Select hides the choices behind a click, which is right above roughly seven\n * options and wrong below it.\n *\n * `Select.Value` renders the human-readable label of the selection, not its\n * value — the reason a Select takes both `options` and `optionValue`/`optionText`\n * rather than a bare list of strings, and the reason the trigger never shows a\n * raw id.\n */\nexport function Select<Option, OptGroup = never>(\n props: ComponentProps<typeof KobalteSelect<Option, OptGroup>>\n) {\n return <KobalteSelect {...props} />\n}\n\nexport type SelectTriggerProps = ComponentProps<typeof KobalteSelect.Trigger> & {\n size?: 'sm' | 'md' | 'lg'\n /** Hide the chevron, e.g. when a caller draws its own affordance. */\n hideIcon?: boolean\n}\n\nexport function SelectTrigger(props: SelectTriggerProps) {\n const [local, rest] = splitProps(props, ['class', 'size', 'hideIcon', 'children'])\n\n return (\n <KobalteSelect.Trigger\n class={cn(\n 'border-input bg-transparent flex w-fit items-center justify-between gap-2 rounded-md border px-control-md',\n 'whitespace-nowrap transition-[color,box-shadow,border-color] ease-out outline-none',\n 'data-[placeholder-shown]:text-muted-foreground',\n 'hover:border-input',\n 'focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-primary-subtle',\n 'aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive-subtle',\n 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',\n '*:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2',\n '[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:size-4',\n {\n 'h-control-sm text-xs': local.size === 'sm',\n 'h-control-md text-sm': local.size === 'md' || local.size === undefined,\n 'h-control-lg text-sm': local.size === 'lg',\n },\n local.class\n )}\n {...rest}\n >\n {local.children}\n <Show when={!local.hideIcon}>\n <KobalteSelect.Icon class=\"text-muted-foreground\">\n <ChevronDown />\n </KobalteSelect.Icon>\n </Show>\n </KobalteSelect.Trigger>\n )\n}\n\n/**\n * What the trigger shows for the current selection.\n *\n * The default renderer is the reason a single-select needs no render prop at all.\n * Kobalte's own `Value` draws *only* its children, so a bare `<SelectValue />`\n * shows the placeholder and then goes blank the moment something is chosen: the\n * value is there, nothing paints it.\n *\n * Kobalte cannot supply a default itself, because an option is the caller's type\n * — it has no way to know which field is the label. So this reads a field by\n * convention: `label`, then `name`, then `textValue`. An option shaped\n * `{ value, label }` therefore needs nothing, and anything else passes\n * `optionLabel`.\n *\n * A multiple-select still supplies its own renderer, because \"3 selected\" is a\n * summary a caller has to phrase, not something a component can guess.\n */\ntype SelectValueChildren = ComponentProps<typeof KobalteSelect.Value>['children']\n\nexport type SelectValueProps = ComponentProps<typeof KobalteSelect.Value> & {\n /**\n * Read the display text from the selected option. Supply this when the option's\n * label does not live in a field called `label`, `name` or `textValue`.\n */\n optionLabel?: (option: unknown) => string\n /** Replace the default readout entirely, for a multiple-select summary. */\n children?: SelectValueChildren\n}\n\n/** Fields a label is read from, in order. See `SelectValueProps.optionLabel`. */\nconst LABEL_FIELDS = ['label', 'name', 'textValue'] as const\n\nfunction labelFromOption(option: unknown): string {\n if (option === null || typeof option !== 'object') {\n return typeof option === 'string' ? option : ''\n }\n\n for (const field of LABEL_FIELDS) {\n const value = (option as Record<string, unknown>)[field]\n if (typeof value === 'string') return value\n }\n\n return ''\n}\n\nexport function SelectValue(props: SelectValueProps) {\n const [local, rest] = splitProps(props, ['class', 'children', 'optionLabel'])\n\n const readLabel = (state: { selectedOption: () => unknown }): string => {\n const option = state.selectedOption()\n return local.optionLabel ? local.optionLabel(option) : labelFromOption(option)\n }\n\n return (\n <KobalteSelect.Value data-slot=\"select-value\" class={cn('truncate', local.class)} {...rest}>\n {local.children ?? (readLabel as unknown as SelectValueChildren)}\n </KobalteSelect.Value>\n )\n}\n\n/**\n * The option list. The items themselves come from the root's `itemComponent`,\n * which is what makes a Select able to render a typed option rather than a\n * string; `children` here is for content above the list, such as a filter hint.\n */\nexport type SelectContentProps = ComponentProps<typeof KobalteSelect.Content> & {\n /** Keep a nested menu inside its enclosing modal's accessible subtree. */\n portalMount?: HTMLElement\n}\n\nexport function SelectContent(props: SelectContentProps) {\n const [local, rest] = splitProps(props, ['class', 'children', 'portalMount'])\n\n return (\n <KobalteSelect.Portal mount={local.portalMount}>\n <KobalteSelect.Content\n class={cn(\n 'bg-popover text-popover-foreground rounded-xl border border-border shadow-lg',\n 'z-(--z-menu) max-h-(--kb-popper-content-available-height) min-w-[8rem] origin-(--kb-select-content-transform-origin) overflow-y-auto overflow-x-hidden',\n menuContentPadding,\n 'data-expanded:animate-in data-expanded:fade-in-0 data-expanded:zoom-in-95',\n 'data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n 'data-expanded:duration-150 data-closed:duration-100',\n local.class\n )}\n {...rest}\n >\n {local.children}\n <KobalteSelect.Listbox class=\"flex flex-col\" />\n <KobalteSelect.Arrow aria-hidden=\"true\" class={popoverArrow} />\n </KobalteSelect.Content>\n </KobalteSelect.Portal>\n )\n}\n\nexport function SelectItem(props: ComponentProps<typeof KobalteSelect.Item>) {\n const [local, rest] = splitProps(props, ['class', 'children'])\n\n return (\n <KobalteSelect.Item class={cn(menuItem, 'pe-8', local.class)} {...rest}>\n <KobalteSelect.ItemLabel>{local.children}</KobalteSelect.ItemLabel>\n <KobalteSelect.ItemIndicator class=\"absolute end-2 flex size-4 items-center justify-center\">\n <Check class=\"size-4\" />\n </KobalteSelect.ItemIndicator>\n </KobalteSelect.Item>\n )\n}\n\nexport function SelectSection(props: ComponentProps<typeof KobalteSelect.Section>) {\n const [local, rest] = splitProps(props, ['class'])\n return <KobalteSelect.Section class={cn('flex flex-col', local.class)} {...rest} />\n}\n\nexport function SelectLabel(props: ComponentProps<typeof KobalteSelect.Label>) {\n const [local, rest] = splitProps(props, ['class'])\n return (\n <KobalteSelect.Label\n class={cn('text-muted-foreground px-2 py-1.5 text-2xs font-medium uppercase', local.class)}\n {...rest}\n />\n )\n}\n\n/** The chevron pair used when a Select is composed by hand in a field. */\nexport function SelectChevronsUpDown(props: ComponentProps<'svg'>) {\n return <ChevronsUpDown aria-hidden=\"true\" {...props} />\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Separator } from "./separator.js";
2
+ export { Separator };