@mihcm/ui 0.14.1 → 0.15.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/CheckboxGrid.native.d.ts.map +1 -1
- package/dist/CheckboxGrid.native.js +2 -1
- package/dist/CheckboxGrid.native.js.map +1 -1
- package/dist/Combobox.native.d.ts.map +1 -1
- package/dist/Combobox.native.js +2 -1
- package/dist/Combobox.native.js.map +1 -1
- package/dist/DataTable/column-filter.d.ts +8 -0
- package/dist/DataTable/column-filter.d.ts.map +1 -0
- package/dist/DataTable/column-filter.js +67 -0
- package/dist/DataTable/column-filter.js.map +1 -0
- package/dist/DataTable/column-header.d.ts +16 -0
- package/dist/DataTable/column-header.d.ts.map +1 -0
- package/dist/DataTable/column-header.js +11 -0
- package/dist/DataTable/column-header.js.map +1 -0
- package/dist/DataTable/column-visibility.d.ts +7 -0
- package/dist/DataTable/column-visibility.d.ts.map +1 -0
- package/dist/DataTable/column-visibility.js +35 -0
- package/dist/DataTable/column-visibility.js.map +1 -0
- package/dist/DataTable/index.d.ts +5 -0
- package/dist/DataTable/index.d.ts.map +1 -0
- package/dist/DataTable/index.js +5 -0
- package/dist/DataTable/index.js.map +1 -0
- package/dist/DataTable/pinning.d.ts +13 -0
- package/dist/DataTable/pinning.d.ts.map +1 -0
- package/dist/DataTable/pinning.js +29 -0
- package/dist/DataTable/pinning.js.map +1 -0
- package/dist/DataTable.d.ts +3 -7
- package/dist/DataTable.d.ts.map +1 -1
- package/dist/DataTable.js +7 -126
- package/dist/DataTable.js.map +1 -1
- package/dist/Dialog.native.d.ts +3 -1
- package/dist/Dialog.native.d.ts.map +1 -1
- package/dist/Dialog.native.js +2 -2
- package/dist/Dialog.native.js.map +1 -1
- package/dist/Form/building-blocks.d.ts +26 -0
- package/dist/Form/building-blocks.d.ts.map +1 -0
- package/dist/Form/building-blocks.js +29 -0
- package/dist/Form/building-blocks.js.map +1 -0
- package/dist/Form/fields-choice.d.ts +72 -0
- package/dist/Form/fields-choice.d.ts.map +1 -0
- package/dist/Form/fields-choice.js +69 -0
- package/dist/Form/fields-choice.js.map +1 -0
- package/dist/Form/fields-complex.d.ts +28 -0
- package/dist/Form/fields-complex.d.ts.map +1 -0
- package/dist/Form/fields-complex.js +38 -0
- package/dist/Form/fields-complex.js.map +1 -0
- package/dist/Form/fields-date.d.ts +46 -0
- package/dist/Form/fields-date.d.ts.map +1 -0
- package/dist/Form/fields-date.js +41 -0
- package/dist/Form/fields-date.js.map +1 -0
- package/dist/Form/fields-text.d.ts +47 -0
- package/dist/Form/fields-text.d.ts.map +1 -0
- package/dist/Form/fields-text.js +46 -0
- package/dist/Form/fields-text.js.map +1 -0
- package/dist/Form/fields-toggle.d.ts +24 -0
- package/dist/Form/fields-toggle.d.ts.map +1 -0
- package/dist/Form/fields-toggle.js +32 -0
- package/dist/Form/fields-toggle.js.map +1 -0
- package/dist/Form/helpers.d.ts +66 -0
- package/dist/Form/helpers.d.ts.map +1 -0
- package/dist/Form/helpers.js +44 -0
- package/dist/Form/helpers.js.map +1 -0
- package/dist/Form/types.d.ts +25 -0
- package/dist/Form/types.d.ts.map +1 -0
- package/dist/Form/types.js +8 -0
- package/dist/Form/types.js.map +1 -0
- package/dist/Form.d.ts +24 -298
- package/dist/Form.d.ts.map +1 -1
- package/dist/Form.js +30 -246
- package/dist/Form.js.map +1 -1
- package/dist/IconSidebar.d.ts +6 -46
- package/dist/IconSidebar.d.ts.map +1 -1
- package/dist/IconSidebar.js +6 -116
- package/dist/IconSidebar.js.map +1 -1
- package/dist/MainSidebar/back-button.d.ts +14 -0
- package/dist/MainSidebar/back-button.d.ts.map +1 -0
- package/dist/MainSidebar/back-button.js +14 -0
- package/dist/MainSidebar/back-button.js.map +1 -0
- package/dist/MainSidebar/breadcrumb.d.ts +10 -0
- package/dist/MainSidebar/breadcrumb.d.ts.map +1 -0
- package/dist/MainSidebar/breadcrumb.js +24 -0
- package/dist/MainSidebar/breadcrumb.js.map +1 -0
- package/dist/MainSidebar/columns.d.ts +3 -0
- package/dist/MainSidebar/columns.d.ts.map +1 -0
- package/dist/MainSidebar/columns.js +198 -0
- package/dist/MainSidebar/columns.js.map +1 -0
- package/dist/MainSidebar/command.d.ts +3 -0
- package/dist/MainSidebar/command.d.ts.map +1 -0
- package/dist/MainSidebar/command.js +193 -0
- package/dist/MainSidebar/command.js.map +1 -0
- package/dist/MainSidebar/drilldown.d.ts +3 -0
- package/dist/MainSidebar/drilldown.d.ts.map +1 -0
- package/dist/MainSidebar/drilldown.js +154 -0
- package/dist/MainSidebar/drilldown.js.map +1 -0
- package/dist/MainSidebar/expanded.d.ts +7 -0
- package/dist/MainSidebar/expanded.d.ts.map +1 -0
- package/dist/MainSidebar/expanded.js +102 -0
- package/dist/MainSidebar/expanded.js.map +1 -0
- package/dist/MainSidebar/floating.d.ts +3 -0
- package/dist/MainSidebar/floating.d.ts.map +1 -0
- package/dist/MainSidebar/floating.js +116 -0
- package/dist/MainSidebar/floating.js.map +1 -0
- package/dist/MainSidebar/helpers.d.ts +50 -0
- package/dist/MainSidebar/helpers.d.ts.map +1 -0
- package/dist/MainSidebar/helpers.js +150 -0
- package/dist/MainSidebar/helpers.js.map +1 -0
- package/dist/MainSidebar/hover.d.ts +3 -0
- package/dist/MainSidebar/hover.d.ts.map +1 -0
- package/dist/MainSidebar/hover.js +177 -0
- package/dist/MainSidebar/hover.js.map +1 -0
- package/dist/MainSidebar/index.d.ts +6 -0
- package/dist/MainSidebar/index.d.ts.map +1 -0
- package/dist/MainSidebar/index.js +108 -0
- package/dist/MainSidebar/index.js.map +1 -0
- package/dist/MainSidebar/mobile.d.ts +29 -0
- package/dist/MainSidebar/mobile.d.ts.map +1 -0
- package/dist/MainSidebar/mobile.js +38 -0
- package/dist/MainSidebar/mobile.js.map +1 -0
- package/dist/MainSidebar/motion.d.ts +23 -0
- package/dist/MainSidebar/motion.d.ts.map +1 -0
- package/dist/MainSidebar/motion.js +40 -0
- package/dist/MainSidebar/motion.js.map +1 -0
- package/dist/MainSidebar/rail.d.ts +24 -0
- package/dist/MainSidebar/rail.d.ts.map +1 -0
- package/dist/MainSidebar/rail.js +29 -0
- package/dist/MainSidebar/rail.js.map +1 -0
- package/dist/MainSidebar/search.d.ts +19 -0
- package/dist/MainSidebar/search.d.ts.map +1 -0
- package/dist/MainSidebar/search.js +33 -0
- package/dist/MainSidebar/search.js.map +1 -0
- package/dist/MainSidebar/types.d.ts +161 -0
- package/dist/MainSidebar/types.d.ts.map +1 -0
- package/dist/MainSidebar/types.js +2 -0
- package/dist/MainSidebar/types.js.map +1 -0
- package/dist/MainSidebar.d.ts +6 -1
- package/dist/MainSidebar.d.ts.map +1 -1
- package/dist/MainSidebar.js +6 -1
- package/dist/MainSidebar.js.map +1 -1
- package/dist/NavigationMenu.js +1 -1
- package/dist/NavigationMenu.js.map +1 -1
- package/dist/RichTextEditor/theme.d.ts +44 -0
- package/dist/RichTextEditor/theme.d.ts.map +1 -0
- package/dist/RichTextEditor/theme.js +41 -0
- package/dist/RichTextEditor/theme.js.map +1 -0
- package/dist/RichTextEditor/toolbar-icons.d.ts +21 -0
- package/dist/RichTextEditor/toolbar-icons.d.ts.map +1 -0
- package/dist/RichTextEditor/toolbar-icons.js +21 -0
- package/dist/RichTextEditor/toolbar-icons.js.map +1 -0
- package/dist/RichTextEditor/toolbar.d.ts +5 -0
- package/dist/RichTextEditor/toolbar.d.ts.map +1 -0
- package/dist/RichTextEditor/toolbar.js +116 -0
- package/dist/RichTextEditor/toolbar.js.map +1 -0
- package/dist/RichTextEditor.d.ts +16 -9
- package/dist/RichTextEditor.d.ts.map +1 -1
- package/dist/RichTextEditor.js +18 -164
- package/dist/RichTextEditor.js.map +1 -1
- package/dist/Select/content.d.ts +9 -0
- package/dist/Select/content.d.ts.map +1 -0
- package/dist/Select/content.js +80 -0
- package/dist/Select/content.js.map +1 -0
- package/dist/Select/context.d.ts +27 -0
- package/dist/Select/context.d.ts.map +1 -0
- package/dist/Select/context.js +35 -0
- package/dist/Select/context.js.map +1 -0
- package/dist/Select/item.d.ts +13 -0
- package/dist/Select/item.d.ts.map +1 -0
- package/dist/Select/item.js +39 -0
- package/dist/Select/item.js.map +1 -0
- package/dist/Select/parts.d.ts +14 -0
- package/dist/Select/parts.d.ts.map +1 -0
- package/dist/Select/parts.js +17 -0
- package/dist/Select/parts.js.map +1 -0
- package/dist/Select/react-select.d.ts +25 -0
- package/dist/Select/react-select.d.ts.map +1 -0
- package/dist/Select/react-select.js +66 -0
- package/dist/Select/react-select.js.map +1 -0
- package/dist/Select/root.d.ts +15 -0
- package/dist/Select/root.d.ts.map +1 -0
- package/dist/Select/root.js +41 -0
- package/dist/Select/root.js.map +1 -0
- package/dist/Select/trigger.d.ts +15 -0
- package/dist/Select/trigger.d.ts.map +1 -0
- package/dist/Select/trigger.js +61 -0
- package/dist/Select/trigger.js.map +1 -0
- package/dist/Select.d.ts +14 -62
- package/dist/Select.d.ts.map +1 -1
- package/dist/Select.js +14 -293
- package/dist/Select.js.map +1 -1
- package/dist/Sidebar/context.d.ts +28 -0
- package/dist/Sidebar/context.d.ts.map +1 -0
- package/dist/Sidebar/context.js +37 -0
- package/dist/Sidebar/context.js.map +1 -0
- package/dist/Sidebar/group.d.ts +13 -0
- package/dist/Sidebar/group.d.ts.map +1 -0
- package/dist/Sidebar/group.js +20 -0
- package/dist/Sidebar/group.js.map +1 -0
- package/dist/Sidebar/icons.d.ts +7 -0
- package/dist/Sidebar/icons.d.ts.map +1 -0
- package/dist/Sidebar/icons.js +12 -0
- package/dist/Sidebar/icons.js.map +1 -0
- package/dist/Sidebar/layout.d.ts +9 -0
- package/dist/Sidebar/layout.d.ts.map +1 -0
- package/dist/Sidebar/layout.js +21 -0
- package/dist/Sidebar/layout.js.map +1 -0
- package/dist/Sidebar/menu.d.ts +29 -0
- package/dist/Sidebar/menu.d.ts.map +1 -0
- package/dist/Sidebar/menu.js +55 -0
- package/dist/Sidebar/menu.js.map +1 -0
- package/dist/Sidebar/provider.d.ts +33 -0
- package/dist/Sidebar/provider.d.ts.map +1 -0
- package/dist/Sidebar/provider.js +110 -0
- package/dist/Sidebar/provider.js.map +1 -0
- package/dist/Sidebar/sidebar.d.ts +17 -0
- package/dist/Sidebar/sidebar.d.ts.map +1 -0
- package/dist/Sidebar/sidebar.js +51 -0
- package/dist/Sidebar/sidebar.js.map +1 -0
- package/dist/Sidebar/submenu.d.ts +13 -0
- package/dist/Sidebar/submenu.d.ts.map +1 -0
- package/dist/Sidebar/submenu.js +17 -0
- package/dist/Sidebar/submenu.js.map +1 -0
- package/dist/Sidebar/trigger.d.ts +9 -0
- package/dist/Sidebar/trigger.d.ts.map +1 -0
- package/dist/Sidebar/trigger.js +33 -0
- package/dist/Sidebar/trigger.js.map +1 -0
- package/dist/Sidebar.d.ts +14 -104
- package/dist/Sidebar.d.ts.map +1 -1
- package/dist/Sidebar.js +14 -300
- package/dist/Sidebar.js.map +1 -1
- package/dist/StatCard.d.ts +67 -9
- package/dist/StatCard.d.ts.map +1 -1
- package/dist/StatCard.js +111 -9
- package/dist/StatCard.js.map +1 -1
- package/dist/TransferList.native.d.ts.map +1 -1
- package/dist/TransferList.native.js +2 -1
- package/dist/TransferList.native.js.map +1 -1
- package/package.json +2 -2
- package/src/CheckboxGrid.native.tsx +2 -1
- package/src/Combobox.native.tsx +2 -1
- package/src/DataTable/column-filter.tsx +134 -0
- package/src/DataTable/column-header.tsx +67 -0
- package/src/DataTable/column-visibility.tsx +87 -0
- package/src/DataTable/index.ts +4 -0
- package/src/DataTable/pinning.ts +40 -0
- package/src/DataTable.tsx +14 -297
- package/src/Dialog.native.tsx +4 -2
- package/src/Form/building-blocks.tsx +97 -0
- package/src/Form/fields-choice.tsx +312 -0
- package/src/Form/fields-complex.tsx +195 -0
- package/src/Form/fields-date.tsx +195 -0
- package/src/Form/fields-text.tsx +218 -0
- package/src/Form/fields-toggle.tsx +123 -0
- package/src/Form/helpers.tsx +189 -0
- package/src/Form/types.ts +26 -0
- package/src/Form.tsx +91 -1308
- package/src/IconSidebar.tsx +20 -442
- package/src/MainSidebar/back-button.tsx +58 -0
- package/src/MainSidebar/breadcrumb.tsx +53 -0
- package/src/MainSidebar/columns.tsx +350 -0
- package/src/MainSidebar/command.tsx +404 -0
- package/src/MainSidebar/drilldown.tsx +373 -0
- package/src/MainSidebar/expanded.tsx +414 -0
- package/src/MainSidebar/floating.tsx +268 -0
- package/src/MainSidebar/helpers.ts +166 -0
- package/src/MainSidebar/hover.tsx +334 -0
- package/src/MainSidebar/index.tsx +191 -0
- package/src/MainSidebar/mobile.tsx +117 -0
- package/src/MainSidebar/motion.ts +64 -0
- package/src/MainSidebar/rail.tsx +137 -0
- package/src/MainSidebar/search.tsx +99 -0
- package/src/MainSidebar/types.ts +208 -0
- package/src/MainSidebar.tsx +15 -4
- package/src/NavigationMenu.tsx +1 -1
- package/src/RichTextEditor/theme.ts +43 -0
- package/src/RichTextEditor/toolbar-icons.tsx +40 -0
- package/src/RichTextEditor/toolbar.tsx +271 -0
- package/src/RichTextEditor.tsx +23 -371
- package/src/Select/content.tsx +111 -0
- package/src/Select/context.tsx +66 -0
- package/src/Select/item.tsx +97 -0
- package/src/Select/parts.tsx +43 -0
- package/src/Select/react-select.tsx +216 -0
- package/src/Select/root.tsx +75 -0
- package/src/Select/trigger.tsx +122 -0
- package/src/Select.tsx +34 -692
- package/src/Sidebar/context.tsx +72 -0
- package/src/Sidebar/group.tsx +69 -0
- package/src/Sidebar/icons.tsx +42 -0
- package/src/Sidebar/layout.tsx +64 -0
- package/src/Sidebar/menu.tsx +171 -0
- package/src/Sidebar/provider.tsx +224 -0
- package/src/Sidebar/sidebar.tsx +178 -0
- package/src/Sidebar/submenu.tsx +58 -0
- package/src/Sidebar/trigger.tsx +104 -0
- package/src/Sidebar.tsx +44 -927
- package/src/StatCard.tsx +365 -20
- package/src/TransferList.native.tsx +2 -1
- package/dist/TiptapEditor.d.ts +0 -24
- package/dist/TiptapEditor.d.ts.map +0 -1
- package/dist/TiptapEditor.js +0 -84
- package/dist/TiptapEditor.js.map +0 -1
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
/**
|
|
3
|
+
* Internal context for the composable Select.
|
|
4
|
+
*/
|
|
5
|
+
import { Children, createContext, isValidElement, useContext, } from 'react';
|
|
6
|
+
export const SelectContext = createContext(null);
|
|
7
|
+
export function useSelectContext() {
|
|
8
|
+
const ctx = useContext(SelectContext);
|
|
9
|
+
if (!ctx)
|
|
10
|
+
throw new Error('Select sub-components must be used within <Select>.');
|
|
11
|
+
return ctx;
|
|
12
|
+
}
|
|
13
|
+
function getTextLabel(children) {
|
|
14
|
+
if (typeof children === 'string' || typeof children === 'number') {
|
|
15
|
+
return String(children);
|
|
16
|
+
}
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
export function findSelectItemLabel(children, value) {
|
|
20
|
+
if (!value)
|
|
21
|
+
return undefined;
|
|
22
|
+
let match;
|
|
23
|
+
Children.forEach(children, (child) => {
|
|
24
|
+
if (match || !isValidElement(child))
|
|
25
|
+
return;
|
|
26
|
+
const props = child.props;
|
|
27
|
+
if (props.value === value) {
|
|
28
|
+
match = getTextLabel(props.children);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
match = findSelectItemLabel(props.children, value);
|
|
32
|
+
});
|
|
33
|
+
return match;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/Select/context.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;GAEG;AACH,OAAO,EACL,QAAQ,EACR,aAAa,EACb,cAAc,EACd,UAAU,GAGX,MAAM,OAAO,CAAC;AAgBf,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAA4B,IAAI,CAAC,CAAC;AAE5E,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IACtC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACjF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,YAAY,CAAC,QAAmB;IACvC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAmB,EAAE,KAAyB;IAChF,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE7B,IAAI,KAAyB,CAAC;IAE9B,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;QACnC,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YAAE,OAAO;QAE5C,MAAM,KAAK,GAAG,KAAK,CAAC,KAGnB,CAAC;QAEF,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YAC1B,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAED,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SelectItem — single option row with check indicator and keyboard support.
|
|
3
|
+
* Registers its label with the Select context so the trigger can display the
|
|
4
|
+
* selected option's visible label without re-deriving from `children`.
|
|
5
|
+
*/
|
|
6
|
+
import { type HTMLAttributes, type ReactNode } from 'react';
|
|
7
|
+
export interface SelectItemProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onClick'> {
|
|
8
|
+
value: string;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
}
|
|
12
|
+
export declare const SelectItem: import("react").ForwardRefExoticComponent<SelectItemProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
13
|
+
//# sourceMappingURL=item.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../../src/Select/item.tsx"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,OAAO,EAIL,KAAK,cAAc,EAEnB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC;IACtF,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,eAAO,MAAM,UAAU,4GAwEtB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* SelectItem — single option row with check indicator and keyboard support.
|
|
5
|
+
* Registers its label with the Select context so the trigger can display the
|
|
6
|
+
* selected option's visible label without re-deriving from `children`.
|
|
7
|
+
*/
|
|
8
|
+
import { forwardRef, useCallback, useEffect, } from 'react';
|
|
9
|
+
import { cn } from '../internal/cn.js';
|
|
10
|
+
import { useSelectContext } from './context.js';
|
|
11
|
+
export const SelectItem = forwardRef(function SelectItem({ className, value, disabled, children, ...props }, ref) {
|
|
12
|
+
const ctx = useSelectContext();
|
|
13
|
+
const { onValueChange, selectedLabel, setSelectedLabel, triggerRef } = ctx;
|
|
14
|
+
const isSelected = ctx.value === value;
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
if (isSelected &&
|
|
17
|
+
typeof children === 'string' &&
|
|
18
|
+
(selectedLabel?.value !== value || selectedLabel.label !== children)) {
|
|
19
|
+
setSelectedLabel({ value, label: children });
|
|
20
|
+
}
|
|
21
|
+
}, [isSelected, children, selectedLabel?.label, selectedLabel?.value, setSelectedLabel, value]);
|
|
22
|
+
const handleSelect = useCallback(() => {
|
|
23
|
+
if (disabled)
|
|
24
|
+
return;
|
|
25
|
+
if (typeof children === 'string') {
|
|
26
|
+
setSelectedLabel({ value, label: children });
|
|
27
|
+
}
|
|
28
|
+
onValueChange(value);
|
|
29
|
+
triggerRef.current?.focus();
|
|
30
|
+
}, [children, disabled, onValueChange, setSelectedLabel, triggerRef, value]);
|
|
31
|
+
const handleKeyDown = useCallback((e) => {
|
|
32
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
33
|
+
e.preventDefault();
|
|
34
|
+
handleSelect();
|
|
35
|
+
}
|
|
36
|
+
}, [handleSelect]);
|
|
37
|
+
return (_jsxs("div", { ref: ref, role: "option", "aria-selected": isSelected, "aria-disabled": disabled || undefined, tabIndex: disabled ? undefined : -1, onClick: handleSelect, onKeyDown: handleKeyDown, className: cn('relative flex cursor-pointer items-center rounded-md px-2 py-1.5 text-body-sm outline-none', 'transition-colors duration-150', 'hover:bg-muted focus:bg-muted', isSelected && 'font-medium', disabled && 'pointer-events-none opacity-50', className), ...props, children: [_jsx("span", { className: "mr-2 inline-flex h-4 w-4 shrink-0 items-center justify-center", children: isSelected && (_jsx("svg", { "aria-hidden": "true", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: 2, className: "h-4 w-4", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M3 8l3 3 7-7" }) })) }), _jsx("span", { className: "truncate", children: children })] }));
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"item.js","sourceRoot":"","sources":["../../src/Select/item.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Small Select sub-parts: SelectGroup, SelectLabel, SelectSeparator.
|
|
3
|
+
*/
|
|
4
|
+
import { type HTMLAttributes } from 'react';
|
|
5
|
+
export interface SelectGroupProps extends HTMLAttributes<HTMLDivElement> {
|
|
6
|
+
}
|
|
7
|
+
export declare const SelectGroup: import("react").ForwardRefExoticComponent<SelectGroupProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
8
|
+
export interface SelectLabelProps extends HTMLAttributes<HTMLDivElement> {
|
|
9
|
+
}
|
|
10
|
+
export declare const SelectLabel: import("react").ForwardRefExoticComponent<SelectLabelProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
11
|
+
export interface SelectSeparatorProps extends HTMLAttributes<HTMLHRElement> {
|
|
12
|
+
}
|
|
13
|
+
export declare const SelectSeparator: import("react").ForwardRefExoticComponent<SelectSeparatorProps & import("react").RefAttributes<HTMLHRElement>>;
|
|
14
|
+
//# sourceMappingURL=parts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../../src/Select/parts.tsx"],"names":[],"mappings":"AAEA;;GAEG;AACH,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAGxD,MAAM,WAAW,gBAAiB,SAAQ,cAAc,CAAC,cAAc,CAAC;CAAG;AAE3E,eAAO,MAAM,WAAW,6GAIvB,CAAC;AAEF,MAAM,WAAW,gBAAiB,SAAQ,cAAc,CAAC,cAAc,CAAC;CAAG;AAE3E,eAAO,MAAM,WAAW,6GAUvB,CAAC;AAEF,MAAM,WAAW,oBAAqB,SAAQ,cAAc,CAAC,aAAa,CAAC;CAAG;AAE9E,eAAO,MAAM,eAAe,gHAU3B,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* Small Select sub-parts: SelectGroup, SelectLabel, SelectSeparator.
|
|
5
|
+
*/
|
|
6
|
+
import { forwardRef } from 'react';
|
|
7
|
+
import { cn } from '../internal/cn.js';
|
|
8
|
+
export const SelectGroup = forwardRef(function SelectGroup({ className, ...props }, ref) {
|
|
9
|
+
return _jsx("div", { ref: ref, role: "group", className: cn('py-1', className), ...props });
|
|
10
|
+
});
|
|
11
|
+
export const SelectLabel = forwardRef(function SelectLabel({ className, ...props }, ref) {
|
|
12
|
+
return (_jsx("div", { ref: ref, className: cn('px-2 py-1.5 text-xs font-semibold text-muted-foreground', className), ...props }));
|
|
13
|
+
});
|
|
14
|
+
export const SelectSeparator = forwardRef(function SelectSeparator({ className, ...props }, ref) {
|
|
15
|
+
return (_jsx("hr", { ref: ref, className: cn('-mx-1 my-1 border-t border-border', className), ...props }));
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=parts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parts.js","sourceRoot":"","sources":["../../src/Select/parts.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb;;GAEG;AACH,OAAO,EAAE,UAAU,EAAuB,MAAM,OAAO,CAAC;AACxD,OAAO,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAIvC,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CACnC,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG;IAC/C,OAAO,cAAK,GAAG,EAAE,GAAG,EAAE,IAAI,EAAC,OAAO,EAAC,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,KAAM,KAAK,GAAI,CAAC;AACrF,CAAC,CACF,CAAC;AAIF,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CACnC,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG;IAC/C,OAAO,CACL,cACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,yDAAyD,EAAE,SAAS,CAAC,KAC/E,KAAK,GACT,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAIF,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CACvC,SAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG;IACnD,OAAO,CACL,aACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,mCAAmC,EAAE,SAAS,CAAC,KACzD,KAAK,GACT,CACH,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React Select-powered exports for `@mihcm/ui/Select`. Provides searchable,
|
|
3
|
+
* async, multi, creatable, grouped, and async-creatable selects with MiHCM
|
|
4
|
+
* field-surface tokens preserved through `classNames`.
|
|
5
|
+
*/
|
|
6
|
+
import { type GroupBase, type Props as BaseReactSelectProps, type SelectComponentsConfig } from 'react-select';
|
|
7
|
+
import { type AsyncProps } from 'react-select/async';
|
|
8
|
+
import { type CreatableProps } from 'react-select/creatable';
|
|
9
|
+
import { type AsyncCreatableProps } from 'react-select/async-creatable';
|
|
10
|
+
export interface DefaultReactSelectOption {
|
|
11
|
+
value: string;
|
|
12
|
+
label: string;
|
|
13
|
+
isDisabled?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export type ReactSelectProps<Option = DefaultReactSelectOption, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>> = BaseReactSelectProps<Option, IsMulti, Group>;
|
|
16
|
+
export type ReactAsyncSelectProps<Option = DefaultReactSelectOption, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>> = AsyncProps<Option, IsMulti, Group>;
|
|
17
|
+
export type ReactCreatableSelectProps<Option = DefaultReactSelectOption, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>> = CreatableProps<Option, IsMulti, Group>;
|
|
18
|
+
export type ReactAsyncCreatableSelectProps<Option = DefaultReactSelectOption, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>> = AsyncCreatableProps<Option, IsMulti, Group>;
|
|
19
|
+
export declare function getReactSelectAnimatedComponents<Option = DefaultReactSelectOption, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>>(): SelectComponentsConfig<Option, IsMulti, Group>;
|
|
20
|
+
export declare const reactSelectAnimatedComponents: SelectComponentsConfig<DefaultReactSelectOption, false, GroupBase<DefaultReactSelectOption>>;
|
|
21
|
+
export declare function ReactSelect<Option = DefaultReactSelectOption, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>>(props: ReactSelectProps<Option, IsMulti, Group>): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export declare function ReactAsyncSelect<Option = DefaultReactSelectOption, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>>(props: ReactAsyncSelectProps<Option, IsMulti, Group>): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
export declare function ReactCreatableSelect<Option = DefaultReactSelectOption, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>>(props: ReactCreatableSelectProps<Option, IsMulti, Group>): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export declare function ReactAsyncCreatableSelect<Option = DefaultReactSelectOption, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>>(props: ReactAsyncCreatableSelectProps<Option, IsMulti, Group>): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
//# sourceMappingURL=react-select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-select.d.ts","sourceRoot":"","sources":["../../src/Select/react-select.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* React Select-powered exports for `@mihcm/ui/Select`. Provides searchable,
|
|
5
|
+
* async, multi, creatable, grouped, and async-creatable selects with MiHCM
|
|
6
|
+
* field-surface tokens preserved through `classNames`.
|
|
7
|
+
*/
|
|
8
|
+
import ReactSelectBase, {} from 'react-select';
|
|
9
|
+
import ReactAsyncSelectBase, {} from 'react-select/async';
|
|
10
|
+
import ReactCreatableSelectBase, {} from 'react-select/creatable';
|
|
11
|
+
import ReactAsyncCreatableSelectBase, {} from 'react-select/async-creatable';
|
|
12
|
+
import makeAnimated from 'react-select/animated';
|
|
13
|
+
import { cn } from '../internal/cn.js';
|
|
14
|
+
export function getReactSelectAnimatedComponents() {
|
|
15
|
+
return makeAnimated();
|
|
16
|
+
}
|
|
17
|
+
export const reactSelectAnimatedComponents = getReactSelectAnimatedComponents();
|
|
18
|
+
const reactSelectClassNames = {
|
|
19
|
+
clearIndicator: ({ isFocused }) => cn('rounded-md p-1 text-muted-foreground transition-colors', 'hover:bg-muted hover:text-foreground', isFocused && 'text-foreground'),
|
|
20
|
+
control: ({ isDisabled, isFocused }) => cn('min-h-10 rounded-lg border bg-card px-2.5 text-body-sm shadow-mi-input transition-colors', 'hover:border-primary/60', isFocused ? 'border-primary ring-2 ring-ring/20' : 'border-border', isDisabled && 'cursor-not-allowed bg-muted opacity-50'),
|
|
21
|
+
dropdownIndicator: ({ isFocused }) => cn('rounded-md p-1 text-muted-foreground transition-colors', 'hover:bg-muted hover:text-foreground', isFocused && 'text-foreground'),
|
|
22
|
+
group: () => 'py-1',
|
|
23
|
+
groupHeading: () => 'px-2 py-1 text-xs font-semibold text-muted-foreground',
|
|
24
|
+
indicatorsContainer: () => 'gap-1',
|
|
25
|
+
indicatorSeparator: () => 'mx-1 my-2 w-px self-stretch bg-border',
|
|
26
|
+
input: () => 'text-foreground',
|
|
27
|
+
loadingIndicator: () => 'text-muted-foreground',
|
|
28
|
+
loadingMessage: () => 'px-3 py-6 text-center text-body-sm text-muted-foreground',
|
|
29
|
+
menu: () => 'z-50 mt-1 overflow-hidden rounded-lg border border-border bg-card text-card-foreground shadow-mi-input',
|
|
30
|
+
menuList: () => 'max-h-72 overflow-y-auto p-1',
|
|
31
|
+
multiValue: () => 'm-0.5 inline-flex items-center gap-1 rounded-md bg-muted text-foreground',
|
|
32
|
+
multiValueLabel: () => 'px-2 py-0.5 text-xs font-medium',
|
|
33
|
+
multiValueRemove: () => cn('rounded-r-md px-1 text-muted-foreground transition-colors', 'hover:bg-destructive hover:text-destructive-foreground'),
|
|
34
|
+
noOptionsMessage: () => 'px-3 py-6 text-center text-body-sm text-muted-foreground',
|
|
35
|
+
option: ({ isDisabled, isFocused, isSelected }) => cn('cursor-pointer rounded-md px-2 py-1.5 text-body-sm outline-none transition-colors', isFocused && 'bg-muted', isSelected && 'bg-primary text-primary-foreground', isDisabled && 'pointer-events-none cursor-not-allowed opacity-50'),
|
|
36
|
+
placeholder: () => 'text-muted-foreground',
|
|
37
|
+
singleValue: () => 'text-foreground',
|
|
38
|
+
valueContainer: () => 'gap-1 py-1.5',
|
|
39
|
+
};
|
|
40
|
+
function withReactSelectDefaults(props) {
|
|
41
|
+
const { className, classNamePrefix = 'mihcm-select', classNames, unstyled = true, ...rest } = props;
|
|
42
|
+
const defaultClassNames = reactSelectClassNames;
|
|
43
|
+
return {
|
|
44
|
+
...rest,
|
|
45
|
+
className: cn('w-full min-w-0', className),
|
|
46
|
+
classNamePrefix,
|
|
47
|
+
classNames: {
|
|
48
|
+
...defaultClassNames,
|
|
49
|
+
...classNames,
|
|
50
|
+
},
|
|
51
|
+
unstyled,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
export function ReactSelect(props) {
|
|
55
|
+
return (_jsx(ReactSelectBase, { ...withReactSelectDefaults(props) }));
|
|
56
|
+
}
|
|
57
|
+
export function ReactAsyncSelect(props) {
|
|
58
|
+
return (_jsx(ReactAsyncSelectBase, { ...withReactSelectDefaults(props) }));
|
|
59
|
+
}
|
|
60
|
+
export function ReactCreatableSelect(props) {
|
|
61
|
+
return (_jsx(ReactCreatableSelectBase, { ...withReactSelectDefaults(props) }));
|
|
62
|
+
}
|
|
63
|
+
export function ReactAsyncCreatableSelect(props) {
|
|
64
|
+
return (_jsx(ReactAsyncCreatableSelectBase, { ...withReactSelectDefaults(props) }));
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=react-select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-select.js","sourceRoot":"","sources":["../../src/Select/react-select.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Select root — owns open/close state, value, and the selected-label cache
|
|
3
|
+
* that downstream SelectTrigger reads to render the active option's label.
|
|
4
|
+
*/
|
|
5
|
+
import { type ReactNode } from 'react';
|
|
6
|
+
export interface SelectProps {
|
|
7
|
+
value?: string | undefined;
|
|
8
|
+
onValueChange?: ((value: string) => void) | undefined;
|
|
9
|
+
open?: boolean | undefined;
|
|
10
|
+
onOpenChange?: ((open: boolean) => void) | undefined;
|
|
11
|
+
disabled?: boolean | undefined;
|
|
12
|
+
children: ReactNode;
|
|
13
|
+
}
|
|
14
|
+
export declare function Select({ value, onValueChange, open: controlledOpen, onOpenChange, disabled, children, }: SelectProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=root.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../src/Select/root.tsx"],"names":[],"mappings":"AAEA;;;GAGG;AACH,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGtE,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACtD,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,aAAa,EACb,IAAI,EAAE,cAAc,EACpB,YAAY,EACZ,QAAQ,EACR,QAAQ,GACT,EAAE,WAAW,2CAiDb"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* Select root — owns open/close state, value, and the selected-label cache
|
|
5
|
+
* that downstream SelectTrigger reads to render the active option's label.
|
|
6
|
+
*/
|
|
7
|
+
import { useCallback, useRef, useState } from 'react';
|
|
8
|
+
import { SelectContext, findSelectItemLabel } from './context.js';
|
|
9
|
+
export function Select({ value, onValueChange, open: controlledOpen, onOpenChange, disabled, children, }) {
|
|
10
|
+
const [internalOpen, setInternalOpen] = useState(false);
|
|
11
|
+
const open = controlledOpen ?? internalOpen;
|
|
12
|
+
const setOpen = useCallback((next) => {
|
|
13
|
+
if (disabled && next)
|
|
14
|
+
return;
|
|
15
|
+
onOpenChange?.(next);
|
|
16
|
+
setInternalOpen(next);
|
|
17
|
+
}, [disabled, onOpenChange]);
|
|
18
|
+
const triggerRef = useRef(null);
|
|
19
|
+
const setTriggerRef = useCallback((el) => {
|
|
20
|
+
triggerRef.current = el;
|
|
21
|
+
}, []);
|
|
22
|
+
const [selectedLabel, setSelectedLabel] = useState();
|
|
23
|
+
const handleValueChange = useCallback((v) => {
|
|
24
|
+
onValueChange?.(v);
|
|
25
|
+
setOpen(false);
|
|
26
|
+
}, [onValueChange, setOpen]);
|
|
27
|
+
const getLabelForValue = useCallback((nextValue) => findSelectItemLabel(children, nextValue), [children]);
|
|
28
|
+
return (_jsx(SelectContext.Provider, { value: {
|
|
29
|
+
value,
|
|
30
|
+
onValueChange: handleValueChange,
|
|
31
|
+
open,
|
|
32
|
+
setOpen,
|
|
33
|
+
disabled: !!disabled,
|
|
34
|
+
triggerRef,
|
|
35
|
+
setTriggerRef,
|
|
36
|
+
selectedLabel,
|
|
37
|
+
setSelectedLabel,
|
|
38
|
+
getLabelForValue,
|
|
39
|
+
}, children: _jsx("div", { className: "relative inline-block", children: children }) }));
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=root.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"root.js","sourceRoot":"","sources":["../../src/Select/root.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb;;;GAGG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAWlE,MAAM,UAAU,MAAM,CAAC,EACrB,KAAK,EACL,aAAa,EACb,IAAI,EAAE,cAAc,EACpB,YAAY,EACZ,QAAQ,EACR,QAAQ,GACI;IACZ,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,cAAc,IAAI,YAAY,CAAC;IAC5C,MAAM,OAAO,GAAG,WAAW,CACzB,CAAC,IAAa,EAAE,EAAE;QAChB,IAAI,QAAQ,IAAI,IAAI;YAAE,OAAO;QAC7B,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;QACrB,eAAe,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,EACD,CAAC,QAAQ,EAAE,YAAY,CAAC,CACzB,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,EAA4B,EAAE,EAAE;QACjE,UAAU,CAAC,OAAO,GAAG,EAAE,CAAC;IAC1B,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,EAAgD,CAAC;IAEnG,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,CAAS,EAAE,EAAE;QACZ,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;QACnB,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC,EACD,CAAC,aAAa,EAAE,OAAO,CAAC,CACzB,CAAC;IAEF,MAAM,gBAAgB,GAAG,WAAW,CAClC,CAAC,SAA6B,EAAE,EAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,EAC3E,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,OAAO,CACL,KAAC,aAAa,CAAC,QAAQ,IACrB,KAAK,EAAE;YACL,KAAK;YACL,aAAa,EAAE,iBAAiB;YAChC,IAAI;YACJ,OAAO;YACP,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,UAAU;YACV,aAAa;YACb,aAAa;YACb,gBAAgB;YAChB,gBAAgB;SACjB,YAED,cAAK,SAAS,EAAC,uBAAuB,YAAE,QAAQ,GAAO,GAChC,CAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SelectTrigger — combobox button with chevron, displays the selected label.
|
|
3
|
+
*/
|
|
4
|
+
import { type HTMLAttributes } from 'react';
|
|
5
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
6
|
+
export declare const selectTriggerVariants: (props?: ({
|
|
7
|
+
variant?: "default" | "destructive" | null | undefined;
|
|
8
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
9
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
10
|
+
export interface SelectTriggerProps extends Omit<HTMLAttributes<HTMLButtonElement>, 'children'>, VariantProps<typeof selectTriggerVariants> {
|
|
11
|
+
placeholder?: string | undefined;
|
|
12
|
+
disabled?: boolean | undefined;
|
|
13
|
+
}
|
|
14
|
+
export declare const SelectTrigger: import("react").ForwardRefExoticComponent<SelectTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
15
|
+
//# sourceMappingURL=trigger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger.d.ts","sourceRoot":"","sources":["../../src/Select/trigger.tsx"],"names":[],"mappings":"AAEA;;GAEG;AACH,OAAO,EAGL,KAAK,cAAc,EAGpB,MAAM,OAAO,CAAC;AACf,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE,eAAO,MAAM,qBAAqB;;;8EAwBjC,CAAC;AAEF,MAAM,WAAW,kBACf,SAAQ,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,EACzD,YAAY,CAAC,OAAO,qBAAqB,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAED,eAAO,MAAM,aAAa,kHAwEzB,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* SelectTrigger — combobox button with chevron, displays the selected label.
|
|
5
|
+
*/
|
|
6
|
+
import { forwardRef, useCallback, } from 'react';
|
|
7
|
+
import { cva } from 'class-variance-authority';
|
|
8
|
+
import { cn } from '../internal/cn.js';
|
|
9
|
+
import { useSelectContext } from './context.js';
|
|
10
|
+
export const selectTriggerVariants = cva('inline-flex w-full items-center justify-between gap-2 rounded-lg border bg-card text-foreground shadow-mi-input ' +
|
|
11
|
+
'transition-colors duration-150 ' +
|
|
12
|
+
'focus-visible:outline-none focus-visible:border-primary ' +
|
|
13
|
+
'disabled:pointer-events-none disabled:opacity-50 ' +
|
|
14
|
+
'select-none whitespace-nowrap', {
|
|
15
|
+
variants: {
|
|
16
|
+
variant: {
|
|
17
|
+
default: 'border-border',
|
|
18
|
+
destructive: 'border-destructive text-destructive focus-visible:border-destructive',
|
|
19
|
+
},
|
|
20
|
+
size: {
|
|
21
|
+
sm: 'h-9 px-3 text-body-sm',
|
|
22
|
+
md: 'h-10 px-3.5 text-body-sm',
|
|
23
|
+
lg: 'h-12 px-4 text-body-sm',
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
defaultVariants: {
|
|
27
|
+
variant: 'default',
|
|
28
|
+
size: 'md',
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
export const SelectTrigger = forwardRef(function SelectTrigger({ className, variant, size, placeholder, disabled, id, ...props }, ref) {
|
|
32
|
+
const ctx = useSelectContext();
|
|
33
|
+
const isDisabled = disabled ?? ctx.disabled;
|
|
34
|
+
const listboxId = id ? `${id}-listbox` : undefined;
|
|
35
|
+
const handleClick = useCallback(() => {
|
|
36
|
+
ctx.setOpen(!ctx.open);
|
|
37
|
+
}, [ctx]);
|
|
38
|
+
const handleKeyDown = useCallback((e) => {
|
|
39
|
+
if (e.key === 'ArrowDown' || e.key === 'ArrowUp' || e.key === 'Enter' || e.key === ' ') {
|
|
40
|
+
e.preventDefault();
|
|
41
|
+
if (!ctx.open)
|
|
42
|
+
ctx.setOpen(true);
|
|
43
|
+
}
|
|
44
|
+
}, [ctx]);
|
|
45
|
+
const setRef = useCallback((el) => {
|
|
46
|
+
ctx.setTriggerRef(el);
|
|
47
|
+
if (typeof ref === 'function')
|
|
48
|
+
ref(el);
|
|
49
|
+
else if (ref)
|
|
50
|
+
ref.current = el;
|
|
51
|
+
}, [ctx, ref]);
|
|
52
|
+
const selectedLabel = ctx.selectedLabel;
|
|
53
|
+
const hasValue = ctx.value !== undefined && ctx.value !== '';
|
|
54
|
+
const displayText = hasValue && selectedLabel && selectedLabel.value === ctx.value
|
|
55
|
+
? selectedLabel.label
|
|
56
|
+
: hasValue
|
|
57
|
+
? ctx.getLabelForValue(ctx.value) ?? ctx.value
|
|
58
|
+
: undefined;
|
|
59
|
+
return (_jsxs("button", { ref: setRef, type: "button", id: id, role: "combobox", "aria-expanded": ctx.open, "aria-haspopup": "listbox", "aria-controls": ctx.open ? listboxId : undefined, disabled: isDisabled, onClick: handleClick, onKeyDown: handleKeyDown, className: cn(selectTriggerVariants({ variant, size }), className), ...props, children: [_jsx("span", { className: cn('truncate', !displayText && 'text-muted-foreground'), children: displayText ?? placeholder ?? 'Select…' }), _jsx("svg", { "aria-hidden": "true", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: 2, className: cn('h-4 w-4 shrink-0 opacity-50 transition-transform duration-200', ctx.open && 'rotate-180'), children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M4 6l4 4 4-4" }) })] }));
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=trigger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger.js","sourceRoot":"","sources":["../../src/Select/trigger.tsx"],"names":[],"mappings":"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"}
|
package/dist/Select.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Select (web variant — React DOM).
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* Composable select dropdown built on top of native focus management — no
|
|
5
|
+
* external listbox engine, no native `<select>`. Plus a `react-select`-backed
|
|
6
|
+
* family for searchable / async / multi / creatable cases.
|
|
5
7
|
*
|
|
6
|
-
* Usage:
|
|
7
8
|
* <Select value={val} onValueChange={setVal}>
|
|
8
9
|
* <SelectTrigger placeholder="Pick a fruit" />
|
|
9
10
|
* <SelectContent>
|
|
@@ -12,67 +13,18 @@
|
|
|
12
13
|
* </SelectContent>
|
|
13
14
|
* </Select>
|
|
14
15
|
*
|
|
15
|
-
* Controlled-only: pass `value` / `onValueChange`.
|
|
16
|
-
*
|
|
17
|
-
*
|
|
16
|
+
* Controlled-only: pass `value` / `onValueChange`. Keyboard: ArrowDown/Up to
|
|
17
|
+
* navigate, Enter to select, Escape to close. WCAG 2.1 AA: role="listbox",
|
|
18
|
+
* role="option", aria-expanded, aria-selected.
|
|
19
|
+
*
|
|
20
|
+
* Public barrel — implementation split across `./Select/*` per CLAUDE.md §6.
|
|
18
21
|
*
|
|
19
22
|
* Wiki: docs/components/Select.md
|
|
20
23
|
*/
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
export interface DefaultReactSelectOption {
|
|
28
|
-
value: string;
|
|
29
|
-
label: string;
|
|
30
|
-
isDisabled?: boolean;
|
|
31
|
-
}
|
|
32
|
-
export type ReactSelectProps<Option = DefaultReactSelectOption, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>> = BaseReactSelectProps<Option, IsMulti, Group>;
|
|
33
|
-
export type ReactAsyncSelectProps<Option = DefaultReactSelectOption, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>> = AsyncProps<Option, IsMulti, Group>;
|
|
34
|
-
export type ReactCreatableSelectProps<Option = DefaultReactSelectOption, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>> = CreatableProps<Option, IsMulti, Group>;
|
|
35
|
-
export type ReactAsyncCreatableSelectProps<Option = DefaultReactSelectOption, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>> = AsyncCreatableProps<Option, IsMulti, Group>;
|
|
36
|
-
export declare function getReactSelectAnimatedComponents<Option = DefaultReactSelectOption, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>>(): SelectComponentsConfig<Option, IsMulti, Group>;
|
|
37
|
-
export declare const reactSelectAnimatedComponents: SelectComponentsConfig<DefaultReactSelectOption, false, GroupBase<DefaultReactSelectOption>>;
|
|
38
|
-
export declare function ReactSelect<Option = DefaultReactSelectOption, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>>(props: ReactSelectProps<Option, IsMulti, Group>): import("react/jsx-runtime").JSX.Element;
|
|
39
|
-
export declare function ReactAsyncSelect<Option = DefaultReactSelectOption, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>>(props: ReactAsyncSelectProps<Option, IsMulti, Group>): import("react/jsx-runtime").JSX.Element;
|
|
40
|
-
export declare function ReactCreatableSelect<Option = DefaultReactSelectOption, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>>(props: ReactCreatableSelectProps<Option, IsMulti, Group>): import("react/jsx-runtime").JSX.Element;
|
|
41
|
-
export declare function ReactAsyncCreatableSelect<Option = DefaultReactSelectOption, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>>(props: ReactAsyncCreatableSelectProps<Option, IsMulti, Group>): import("react/jsx-runtime").JSX.Element;
|
|
42
|
-
export interface SelectProps {
|
|
43
|
-
value?: string | undefined;
|
|
44
|
-
onValueChange?: ((value: string) => void) | undefined;
|
|
45
|
-
open?: boolean | undefined;
|
|
46
|
-
onOpenChange?: ((open: boolean) => void) | undefined;
|
|
47
|
-
disabled?: boolean | undefined;
|
|
48
|
-
children: ReactNode;
|
|
49
|
-
}
|
|
50
|
-
export declare function Select({ value, onValueChange, open: controlledOpen, onOpenChange, disabled, children, }: SelectProps): import("react/jsx-runtime").JSX.Element;
|
|
51
|
-
export declare const selectTriggerVariants: (props?: ({
|
|
52
|
-
variant?: "default" | "destructive" | null | undefined;
|
|
53
|
-
size?: "sm" | "md" | "lg" | null | undefined;
|
|
54
|
-
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
55
|
-
export interface SelectTriggerProps extends Omit<HTMLAttributes<HTMLButtonElement>, 'children'>, VariantProps<typeof selectTriggerVariants> {
|
|
56
|
-
placeholder?: string | undefined;
|
|
57
|
-
disabled?: boolean | undefined;
|
|
58
|
-
}
|
|
59
|
-
export declare const SelectTrigger: import("react").ForwardRefExoticComponent<SelectTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
60
|
-
export interface SelectContentProps extends HTMLAttributes<HTMLDivElement> {
|
|
61
|
-
}
|
|
62
|
-
export declare const SelectContent: import("react").ForwardRefExoticComponent<SelectContentProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
63
|
-
export interface SelectItemProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onClick'> {
|
|
64
|
-
value: string;
|
|
65
|
-
disabled?: boolean;
|
|
66
|
-
children: ReactNode;
|
|
67
|
-
}
|
|
68
|
-
export declare const SelectItem: import("react").ForwardRefExoticComponent<SelectItemProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
69
|
-
export interface SelectGroupProps extends HTMLAttributes<HTMLDivElement> {
|
|
70
|
-
}
|
|
71
|
-
export declare const SelectGroup: import("react").ForwardRefExoticComponent<SelectGroupProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
72
|
-
export interface SelectLabelProps extends HTMLAttributes<HTMLDivElement> {
|
|
73
|
-
}
|
|
74
|
-
export declare const SelectLabel: import("react").ForwardRefExoticComponent<SelectLabelProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
75
|
-
export interface SelectSeparatorProps extends HTMLAttributes<HTMLHRElement> {
|
|
76
|
-
}
|
|
77
|
-
export declare const SelectSeparator: import("react").ForwardRefExoticComponent<SelectSeparatorProps & import("react").RefAttributes<HTMLHRElement>>;
|
|
24
|
+
export { getReactSelectAnimatedComponents, reactSelectAnimatedComponents, ReactAsyncCreatableSelect, ReactAsyncSelect, ReactCreatableSelect, ReactSelect, type DefaultReactSelectOption, type ReactAsyncCreatableSelectProps, type ReactAsyncSelectProps, type ReactCreatableSelectProps, type ReactSelectProps, } from './Select/react-select.js';
|
|
25
|
+
export { Select, type SelectProps } from './Select/root.js';
|
|
26
|
+
export { SelectTrigger, selectTriggerVariants, type SelectTriggerProps } from './Select/trigger.js';
|
|
27
|
+
export { SelectContent, type SelectContentProps } from './Select/content.js';
|
|
28
|
+
export { SelectItem, type SelectItemProps } from './Select/item.js';
|
|
29
|
+
export { SelectGroup, SelectLabel, SelectSeparator, type SelectGroupProps, type SelectLabelProps, type SelectSeparatorProps, } from './Select/parts.js';
|
|
78
30
|
//# sourceMappingURL=Select.d.ts.map
|
package/dist/Select.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../src/Select.tsx"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../src/Select.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EACL,gCAAgC,EAChC,6BAA6B,EAC7B,yBAAyB,EACzB,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,KAAK,wBAAwB,EAC7B,KAAK,8BAA8B,EACnC,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,GACtB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EACL,WAAW,EACX,WAAW,EACX,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,mBAAmB,CAAC"}
|