@opengovsg/oui 0.0.0-snapshot-20250312072954 → 0.0.0-snapshot-20250313070232

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.
@@ -19,6 +19,7 @@ var comboBox = require('./combo-box/combo-box.cjs');
19
19
  var comboBoxFuzzy = require('./combo-box/combo-box-fuzzy.cjs');
20
20
  var banner = require('./banner/banner.cjs');
21
21
  var tagField = require('./tag-field/tag-field.cjs');
22
+ var select = require('./select/select.cjs');
22
23
 
23
24
 
24
25
 
@@ -45,3 +46,4 @@ exports.ComboBoxItem = comboBox.ComboBoxItem;
45
46
  exports.ComboBoxFuzzy = comboBoxFuzzy.ComboBoxFuzzy;
46
47
  exports.Banner = banner.Banner;
47
48
  exports.TagField = tagField.TagField;
49
+ exports.Select = select.Select;
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var createLucideIcon = require('../createLucideIcon.cjs');
6
+
7
+ /**
8
+ * @license lucide-react v0.475.0 - ISC
9
+ *
10
+ * This source code is licensed under the ISC license.
11
+ * See the LICENSE file in the root directory of this source tree.
12
+ */
13
+
14
+
15
+ const __iconNode = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
16
+ const Check = createLucideIcon.default("Check", __iconNode);
17
+
18
+ exports.__iconNode = __iconNode;
19
+ exports.default = Check;
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var createLucideIcon = require('../createLucideIcon.cjs');
6
+
7
+ /**
8
+ * @license lucide-react v0.475.0 - ISC
9
+ *
10
+ * This source code is licensed under the ISC license.
11
+ * See the LICENSE file in the root directory of this source tree.
12
+ */
13
+
14
+
15
+ const __iconNode = [
16
+ ["path", { d: "m7 15 5 5 5-5", key: "1hf1tw" }],
17
+ ["path", { d: "m7 9 5-5 5 5", key: "sgt6xg" }]
18
+ ];
19
+ const ChevronsUpDown = createLucideIcon.default("ChevronsUpDown", __iconNode);
20
+
21
+ exports.__iconNode = __iconNode;
22
+ exports.default = ChevronsUpDown;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ 'use strict';
3
+
4
+ var select = require('./select.cjs');
5
+
6
+
7
+
8
+ exports.Select = select.Select;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ 'use strict';
3
+
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+ var ouiTheme = require('@opengovsg/oui-theme');
6
+ var reactAriaComponents = require('react-aria-components');
7
+ var utils = require('../system/utils.cjs');
8
+ var check = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/check.cjs');
9
+
10
+ function SelectItem({ classNames, ...originalProps }) {
11
+ const [props, variantProps] = utils.mapPropsVariants(
12
+ originalProps,
13
+ ouiTheme.selectItemStyles.variantKeys
14
+ );
15
+ const styles = ouiTheme.selectItemStyles(variantProps);
16
+ return /* @__PURE__ */ jsxRuntime.jsx(
17
+ reactAriaComponents.ListBoxItem,
18
+ {
19
+ ...props,
20
+ textValue: props.children,
21
+ className: ouiTheme.composeRenderProps(
22
+ props.className ?? classNames?.base,
23
+ (className, renderProps) => styles.base({ className, ...renderProps })
24
+ ),
25
+ children: (renderProps) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
26
+ /* @__PURE__ */ jsxRuntime.jsx(
27
+ "span",
28
+ {
29
+ className: styles.text({
30
+ className: classNames?.text,
31
+ ...renderProps
32
+ }),
33
+ children: props.children
34
+ }
35
+ ),
36
+ renderProps.isSelected && /* @__PURE__ */ jsxRuntime.jsx(
37
+ "span",
38
+ {
39
+ "aria-hidden": true,
40
+ className: styles.icon({
41
+ className: classNames?.icon,
42
+ ...renderProps
43
+ }),
44
+ children: /* @__PURE__ */ jsxRuntime.jsx(check.default, {})
45
+ }
46
+ )
47
+ ] })
48
+ }
49
+ );
50
+ }
51
+
52
+ exports.SelectItem = SelectItem;
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ "use client";
3
+ 'use strict';
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var react = require('react');
7
+ var ouiTheme = require('@opengovsg/oui-theme');
8
+ var reactAriaComponents = require('react-aria-components');
9
+ var utils = require('../system/utils.cjs');
10
+ var selectItem = require('./select-item.cjs');
11
+ var chevronsUpDown = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/chevrons-up-down.cjs');
12
+ var field = require('../field/field.cjs');
13
+ var button = require('../button/button.cjs');
14
+
15
+ const calculateEstimatedRowHeight = (size) => {
16
+ switch (size) {
17
+ case "xs":
18
+ return 44;
19
+ case "sm":
20
+ return 44;
21
+ case "md":
22
+ return 48;
23
+ }
24
+ };
25
+ function Select({
26
+ label,
27
+ description,
28
+ classNames,
29
+ itemClassNames,
30
+ ...originalProps
31
+ }) {
32
+ const [_props, variantProps] = utils.mapPropsVariants(
33
+ originalProps,
34
+ ouiTheme.selectStyles.variantKeys
35
+ );
36
+ const { items, children, listLayoutOptions, ...props } = _props;
37
+ const styles = ouiTheme.selectStyles(variantProps);
38
+ const layout = react.useMemo(() => {
39
+ return new reactAriaComponents.ListLayout({
40
+ estimatedRowHeight: calculateEstimatedRowHeight(
41
+ variantProps.size ?? "md"
42
+ ),
43
+ ...listLayoutOptions
44
+ });
45
+ }, [listLayoutOptions, variantProps.size]);
46
+ return /* @__PURE__ */ jsxRuntime.jsxs(
47
+ reactAriaComponents.Select,
48
+ {
49
+ className: ouiTheme.composeRenderProps(
50
+ props.className,
51
+ (className, renderProps) => styles.base({ className, ...renderProps })
52
+ ),
53
+ ...props,
54
+ children: [
55
+ label && /* @__PURE__ */ jsxRuntime.jsx(field.Label, { size: variantProps.size, className: classNames?.label, children: label }),
56
+ /* @__PURE__ */ jsxRuntime.jsxs(
57
+ button.Button,
58
+ {
59
+ size: variantProps.size,
60
+ variant: variantProps.variant ?? ouiTheme.selectStyles.defaultVariants.variant,
61
+ color: variantProps.color ?? ouiTheme.selectStyles.defaultVariants.color,
62
+ className: ouiTheme.composeRenderProps(
63
+ classNames?.trigger,
64
+ (className, renderProps) => styles.trigger({ className, ...renderProps })
65
+ ),
66
+ children: [
67
+ /* @__PURE__ */ jsxRuntime.jsx(
68
+ reactAriaComponents.SelectValue,
69
+ {
70
+ className: styles.selectedText({
71
+ className: classNames?.selectedText
72
+ })
73
+ }
74
+ ),
75
+ /* @__PURE__ */ jsxRuntime.jsx(chevronsUpDown.default, { className: "h-4 w-4" })
76
+ ]
77
+ }
78
+ ),
79
+ description && /* @__PURE__ */ jsxRuntime.jsx(
80
+ field.Description,
81
+ {
82
+ size: variantProps.size,
83
+ className: classNames?.description,
84
+ children: description
85
+ }
86
+ ),
87
+ /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Popover, { className: styles.popover({ className: classNames?.popover }), children: /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Virtualizer, { layout, children: /* @__PURE__ */ jsxRuntime.jsx(
88
+ reactAriaComponents.ListBox,
89
+ {
90
+ items,
91
+ shouldFocusWrap: true,
92
+ className: ouiTheme.composeRenderProps(
93
+ classNames?.list,
94
+ (className, renderProps) => styles.list({ className, ...renderProps })
95
+ ),
96
+ children: (item) => {
97
+ if (typeof children === "function") {
98
+ return children(item);
99
+ }
100
+ return /* @__PURE__ */ jsxRuntime.jsx(
101
+ selectItem.SelectItem,
102
+ {
103
+ classNames: itemClassNames,
104
+ size: variantProps.size,
105
+ children: item.textValue
106
+ }
107
+ );
108
+ }
109
+ }
110
+ ) }) })
111
+ ]
112
+ }
113
+ );
114
+ }
115
+
116
+ exports.Select = Select;
package/dist/esm/index.js CHANGED
@@ -17,3 +17,4 @@ export { ComboBox, ComboBoxEmptyState, ComboBoxItem } from './combo-box/combo-bo
17
17
  export { ComboBoxFuzzy } from './combo-box/combo-box-fuzzy.js';
18
18
  export { Banner } from './banner/banner.js';
19
19
  export { TagField } from './tag-field/tag-field.js';
20
+ export { Select } from './select/select.js';
@@ -0,0 +1,14 @@
1
+ import createLucideIcon from '../createLucideIcon.js';
2
+
3
+ /**
4
+ * @license lucide-react v0.475.0 - ISC
5
+ *
6
+ * This source code is licensed under the ISC license.
7
+ * See the LICENSE file in the root directory of this source tree.
8
+ */
9
+
10
+
11
+ const __iconNode = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
12
+ const Check = createLucideIcon("Check", __iconNode);
13
+
14
+ export { __iconNode, Check as default };
@@ -0,0 +1,17 @@
1
+ import createLucideIcon from '../createLucideIcon.js';
2
+
3
+ /**
4
+ * @license lucide-react v0.475.0 - ISC
5
+ *
6
+ * This source code is licensed under the ISC license.
7
+ * See the LICENSE file in the root directory of this source tree.
8
+ */
9
+
10
+
11
+ const __iconNode = [
12
+ ["path", { d: "m7 15 5 5 5-5", key: "1hf1tw" }],
13
+ ["path", { d: "m7 9 5-5 5 5", key: "sgt6xg" }]
14
+ ];
15
+ const ChevronsUpDown = createLucideIcon("ChevronsUpDown", __iconNode);
16
+
17
+ export { __iconNode, ChevronsUpDown as default };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ export { Select } from './select.js';
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
+ import { selectItemStyles, composeRenderProps } from '@opengovsg/oui-theme';
4
+ import { ListBoxItem } from 'react-aria-components';
5
+ import { mapPropsVariants } from '../system/utils.js';
6
+ import Check from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/check.js';
7
+
8
+ function SelectItem({ classNames, ...originalProps }) {
9
+ const [props, variantProps] = mapPropsVariants(
10
+ originalProps,
11
+ selectItemStyles.variantKeys
12
+ );
13
+ const styles = selectItemStyles(variantProps);
14
+ return /* @__PURE__ */ jsx(
15
+ ListBoxItem,
16
+ {
17
+ ...props,
18
+ textValue: props.children,
19
+ className: composeRenderProps(
20
+ props.className ?? classNames?.base,
21
+ (className, renderProps) => styles.base({ className, ...renderProps })
22
+ ),
23
+ children: (renderProps) => /* @__PURE__ */ jsxs(Fragment, { children: [
24
+ /* @__PURE__ */ jsx(
25
+ "span",
26
+ {
27
+ className: styles.text({
28
+ className: classNames?.text,
29
+ ...renderProps
30
+ }),
31
+ children: props.children
32
+ }
33
+ ),
34
+ renderProps.isSelected && /* @__PURE__ */ jsx(
35
+ "span",
36
+ {
37
+ "aria-hidden": true,
38
+ className: styles.icon({
39
+ className: classNames?.icon,
40
+ ...renderProps
41
+ }),
42
+ children: /* @__PURE__ */ jsx(Check, {})
43
+ }
44
+ )
45
+ ] })
46
+ }
47
+ );
48
+ }
49
+
50
+ export { SelectItem };
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ "use client";
3
+ import { jsxs, jsx } from 'react/jsx-runtime';
4
+ import { useMemo } from 'react';
5
+ import { selectStyles, composeRenderProps } from '@opengovsg/oui-theme';
6
+ import { ListLayout, Select as Select$1, SelectValue, Popover, Virtualizer, ListBox } from 'react-aria-components';
7
+ import { mapPropsVariants } from '../system/utils.js';
8
+ import { SelectItem } from './select-item.js';
9
+ import ChevronsUpDown from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/chevrons-up-down.js';
10
+ import { Label, Description } from '../field/field.js';
11
+ import { Button } from '../button/button.js';
12
+
13
+ const calculateEstimatedRowHeight = (size) => {
14
+ switch (size) {
15
+ case "xs":
16
+ return 44;
17
+ case "sm":
18
+ return 44;
19
+ case "md":
20
+ return 48;
21
+ }
22
+ };
23
+ function Select({
24
+ label,
25
+ description,
26
+ classNames,
27
+ itemClassNames,
28
+ ...originalProps
29
+ }) {
30
+ const [_props, variantProps] = mapPropsVariants(
31
+ originalProps,
32
+ selectStyles.variantKeys
33
+ );
34
+ const { items, children, listLayoutOptions, ...props } = _props;
35
+ const styles = selectStyles(variantProps);
36
+ const layout = useMemo(() => {
37
+ return new ListLayout({
38
+ estimatedRowHeight: calculateEstimatedRowHeight(
39
+ variantProps.size ?? "md"
40
+ ),
41
+ ...listLayoutOptions
42
+ });
43
+ }, [listLayoutOptions, variantProps.size]);
44
+ return /* @__PURE__ */ jsxs(
45
+ Select$1,
46
+ {
47
+ className: composeRenderProps(
48
+ props.className,
49
+ (className, renderProps) => styles.base({ className, ...renderProps })
50
+ ),
51
+ ...props,
52
+ children: [
53
+ label && /* @__PURE__ */ jsx(Label, { size: variantProps.size, className: classNames?.label, children: label }),
54
+ /* @__PURE__ */ jsxs(
55
+ Button,
56
+ {
57
+ size: variantProps.size,
58
+ variant: variantProps.variant ?? selectStyles.defaultVariants.variant,
59
+ color: variantProps.color ?? selectStyles.defaultVariants.color,
60
+ className: composeRenderProps(
61
+ classNames?.trigger,
62
+ (className, renderProps) => styles.trigger({ className, ...renderProps })
63
+ ),
64
+ children: [
65
+ /* @__PURE__ */ jsx(
66
+ SelectValue,
67
+ {
68
+ className: styles.selectedText({
69
+ className: classNames?.selectedText
70
+ })
71
+ }
72
+ ),
73
+ /* @__PURE__ */ jsx(ChevronsUpDown, { className: "h-4 w-4" })
74
+ ]
75
+ }
76
+ ),
77
+ description && /* @__PURE__ */ jsx(
78
+ Description,
79
+ {
80
+ size: variantProps.size,
81
+ className: classNames?.description,
82
+ children: description
83
+ }
84
+ ),
85
+ /* @__PURE__ */ jsx(Popover, { className: styles.popover({ className: classNames?.popover }), children: /* @__PURE__ */ jsx(Virtualizer, { layout, children: /* @__PURE__ */ jsx(
86
+ ListBox,
87
+ {
88
+ items,
89
+ shouldFocusWrap: true,
90
+ className: composeRenderProps(
91
+ classNames?.list,
92
+ (className, renderProps) => styles.list({ className, ...renderProps })
93
+ ),
94
+ children: (item) => {
95
+ if (typeof children === "function") {
96
+ return children(item);
97
+ }
98
+ return /* @__PURE__ */ jsx(
99
+ SelectItem,
100
+ {
101
+ classNames: itemClassNames,
102
+ size: variantProps.size,
103
+ children: item.textValue
104
+ }
105
+ );
106
+ }
107
+ }
108
+ ) }) })
109
+ ]
110
+ }
111
+ );
112
+ }
113
+
114
+ export { Select };
@@ -1,7 +1,6 @@
1
- import type { VariantProps } from "@opengovsg/oui-theme";
1
+ import type { ButtonVariantProps } from "@opengovsg/oui-theme";
2
2
  import type { ButtonProps as AriaButtonProps } from "react-aria-components";
3
- import { buttonStyles } from "@opengovsg/oui-theme";
4
- interface _ButtonProps extends Omit<AriaButtonProps, "children">, VariantProps<typeof buttonStyles> {
3
+ export interface ButtonProps extends Omit<AriaButtonProps, "children">, ButtonVariantProps {
5
4
  /**
6
5
  * Whether the button should display a ripple effect on press.
7
6
  * @defaultValue false
@@ -32,17 +31,9 @@ interface _ButtonProps extends Omit<AriaButtonProps, "children">, VariantProps<t
32
31
  */
33
32
  spinnerPlacement?: "start" | "end";
34
33
  }
35
- export type ButtonProps = Omit<_ButtonProps, "aria-label"> & ({
36
- isIconOnly: true;
37
- "aria-label": string;
38
- } | {
39
- isIconOnly?: false;
40
- "aria-label"?: string;
41
- });
42
34
  /**
43
35
  * You probably do not want to use this component if you are rendering a link.
44
36
  * Use `LinkButton` component instead.
45
37
  */
46
38
  export declare const Button: import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
47
- export {};
48
39
  //# sourceMappingURL=button.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/button/button.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAE3E,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAQnD,UAAU,YACR,SAAQ,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,EACvC,YAAY,CAAC,OAAO,YAAY,CAAC;IACnC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC9B;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC5B;;;OAGG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAEzB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;CACnC;AAED,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,GACxD,CACI;IAAE,UAAU,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,UAAU,CAAC,EAAE,KAAK,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAChD,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,MAAM,2GAwElB,CAAA"}
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/button/button.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAU3E,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,EACvC,kBAAkB;IACpB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC9B;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC5B;;;OAGG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAEzB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;CACnC;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,2GAwElB,CAAA"}
@@ -13,4 +13,5 @@ export * from "./text-area-field";
13
13
  export * from "./combo-box";
14
14
  export * from "./banner";
15
15
  export * from "./tag-field";
16
+ export * from "./select";
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -13,4 +13,5 @@ export * from "./text-area-field";
13
13
  export * from "./combo-box";
14
14
  export * from "./banner";
15
15
  export * from "./tag-field";
16
+ export * from "./select";
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from "./select";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/select/index.tsx"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { SelectItemVariantProps, SelectItemVariantSlots, SlotsToClasses } from "@opengovsg/oui-theme";
2
+ import { ListBoxItemProps } from "react-aria-components";
3
+ interface SelectItemProps extends ListBoxItemProps, SelectItemVariantProps {
4
+ classNames?: SlotsToClasses<SelectItemVariantSlots>;
5
+ children: string;
6
+ }
7
+ export declare function SelectItem({ classNames, ...originalProps }: SelectItemProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=select-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-item.d.ts","sourceRoot":"","sources":["../../../src/select/select-item.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,sBAAsB,EACtB,sBAAsB,EACtB,cAAc,EACf,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAe,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAIrE,UAAU,eAAgB,SAAQ,gBAAgB,EAAE,sBAAsB;IACxE,UAAU,CAAC,EAAE,cAAc,CAAC,sBAAsB,CAAC,CAAA;IACnD,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,UAAU,CAAC,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE,EAAE,eAAe,2CA0C3E"}
@@ -0,0 +1,23 @@
1
+ import { SelectItemVariantSlots, selectStyles, SelectVariantSlots, SlotsToClasses, VariantProps } from "@opengovsg/oui-theme";
2
+ import { Key } from "react-aria";
3
+ import { SelectProps as AriaSelectProps, ListBoxProps, ListLayoutOptions } from "react-aria-components";
4
+ export interface SelectProps<T extends SelectItemType = SelectItemType> extends Omit<AriaSelectProps, "children">, VariantProps<typeof selectStyles> {
5
+ classNames?: SlotsToClasses<SelectVariantSlots>;
6
+ itemClassNames?: SlotsToClasses<SelectItemVariantSlots>;
7
+ /**
8
+ * Any additional props to be spread to the list layout.
9
+ */
10
+ listLayoutOptions?: ListLayoutOptions;
11
+ label?: string;
12
+ description?: string | null;
13
+ /** The list of Select options to render */
14
+ items: NonNullable<ListBoxProps<T>["items"]>;
15
+ children?: ListBoxProps<T>["children"];
16
+ }
17
+ type SelectItemType = {
18
+ textValue: string;
19
+ id: Key;
20
+ };
21
+ export declare function Select<T extends SelectItemType>({ label, description, classNames, itemClassNames, ...originalProps }: SelectProps<T>): import("react/jsx-runtime").JSX.Element;
22
+ export {};
23
+ //# sourceMappingURL=select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/select/select.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,sBAAsB,EACtB,YAAY,EAEZ,kBAAkB,EAClB,cAAc,EACd,YAAY,EACb,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAChC,OAAO,EAEL,WAAW,IAAI,eAAe,EAE9B,YAAY,EAEZ,iBAAiB,EAIlB,MAAM,uBAAuB,CAAA;AAO9B,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,CACpE,SAAQ,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,EACvC,YAAY,CAAC,OAAO,YAAY,CAAC;IACnC,UAAU,CAAC,EAAE,cAAc,CAAC,kBAAkB,CAAC,CAAA;IAC/C,cAAc,CAAC,EAAE,cAAc,CAAC,sBAAsB,CAAC,CAAA;IAEvD;;OAEG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IAErC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAE3B,2CAA2C;IAC3C,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;IAE5C,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;CACvC;AAED,KAAK,cAAc,GAAG;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,EAAE,EAAE,GAAG,CAAA;CACR,CAAA;AAeD,wBAAgB,MAAM,CAAC,CAAC,SAAS,cAAc,EAAE,EAC/C,KAAK,EACL,WAAW,EACX,UAAU,EACV,cAAc,EACd,GAAG,aAAa,EACjB,EAAE,WAAW,CAAC,CAAC,CAAC,2CAoFhB"}
@@ -13,7 +13,7 @@ export declare function forwardRef<Component extends As, Props extends object, O
13
13
  as?: As;
14
14
  }>>): InternalForwardRefRenderFunction<Component, Props, OmitKeys>;
15
15
  export declare function forwardRefGeneric<T, P = {}>(render: (props: P, ref: React.Ref<T>) => React.ReactNode): (props: P & React.RefAttributes<T>) => React.ReactNode;
16
- export declare const mapPropsVariants: <T extends Record<string, any>, K extends keyof T>(props: T, variantKeys?: K[], removeVariantProps?: boolean) => readonly [Omit<T, K> | T, Pick<T, K> | {}];
16
+ export declare const mapPropsVariants: <T extends Record<string, any>, K extends keyof T>(props: T, variantKeys?: K[], removeVariantProps?: boolean) => readonly [Omit<T, K> | T, Pick<T, K>];
17
17
  export declare function useRenderProps<T>(props: RenderPropsHookOptions<T>): {
18
18
  className: string | undefined;
19
19
  style: {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/system/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/system/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengovsg/oui",
3
- "version": "0.0.0-snapshot-20250312072954",
3
+ "version": "0.0.0-snapshot-20250313070232",
4
4
  "sideEffects": false,
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "type": "module",
@@ -47,11 +47,11 @@
47
47
  "prettier": "^3.5.0",
48
48
  "tsx": "^4.19.2",
49
49
  "typescript": "5.7.3",
50
- "@opengovsg/oui-theme": "0.0.4",
50
+ "@opengovsg/oui-theme": "0.0.0-snapshot-20250313070232",
51
51
  "@oui/chromatic": "0.0.0",
52
52
  "@oui/eslint-config": "0.0.0",
53
- "@oui/prettier-config": "0.0.0",
54
- "@oui/typescript-config": "0.0.0"
53
+ "@oui/typescript-config": "0.0.0",
54
+ "@oui/prettier-config": "0.0.0"
55
55
  },
56
56
  "dependencies": {
57
57
  "@internationalized/date": "^3.7.0",
@@ -78,7 +78,7 @@
78
78
  "peerDependencies": {
79
79
  "motion": ">=11.12.0 || >=12.0.0-alpha.1",
80
80
  "react-aria-components": "^1.7.1",
81
- "@opengovsg/oui-theme": "0.0.4"
81
+ "@opengovsg/oui-theme": "0.0.0-snapshot-20250313070232"
82
82
  },
83
83
  "prettier": "@oui/prettier-config",
84
84
  "scripts": {