@opengovsg/oui 0.0.0-snapshot-20250312072954 → 0.0.0-snapshot-20250313081440
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/cjs/banner/banner.cjs +1 -1
- package/dist/cjs/button/button.cjs +2 -2
- package/dist/cjs/combo-box/combo-box-fuzzy.cjs +1 -1
- package/dist/cjs/combo-box/combo-box.cjs +1 -1
- package/dist/cjs/field/field.cjs +1 -1
- package/dist/cjs/govt-banner/govt-banner.cjs +1 -1
- package/dist/cjs/index.cjs +13 -11
- package/dist/cjs/input/input.cjs +1 -1
- package/dist/cjs/node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/check.cjs +19 -0
- package/dist/cjs/node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/chevrons-up-down.cjs +22 -0
- package/dist/cjs/select/index.cjs +8 -0
- package/dist/cjs/select/select-item.cjs +52 -0
- package/dist/cjs/select/select.cjs +116 -0
- package/dist/cjs/spinner/use-spinner.cjs +1 -1
- package/dist/cjs/tag-field/tag-field-list.cjs +1 -1
- package/dist/cjs/tag-field/tag-field.cjs +2 -2
- package/dist/cjs/text-area/text-area.cjs +1 -1
- package/dist/cjs/text-area-field/text-area-field.cjs +1 -1
- package/dist/cjs/text-field/text-field.cjs +1 -1
- package/dist/cjs/toggle/toggle.cjs +1 -1
- package/dist/esm/banner/banner.js +1 -1
- package/dist/esm/button/button.js +2 -2
- package/dist/esm/combo-box/combo-box-fuzzy.js +1 -1
- package/dist/esm/combo-box/combo-box.js +1 -1
- package/dist/esm/field/field.js +1 -1
- package/dist/esm/govt-banner/govt-banner.js +1 -1
- package/dist/esm/index.js +6 -5
- package/dist/esm/input/input.js +1 -1
- package/dist/esm/node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/check.js +14 -0
- package/dist/esm/node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/chevrons-up-down.js +17 -0
- package/dist/esm/select/index.js +2 -0
- package/dist/esm/select/select-item.js +50 -0
- package/dist/esm/select/select.js +114 -0
- package/dist/esm/spinner/use-spinner.js +1 -1
- package/dist/esm/tag-field/tag-field-list.js +1 -1
- package/dist/esm/tag-field/tag-field.js +2 -2
- package/dist/esm/text-area/text-area.js +1 -1
- package/dist/esm/text-area-field/text-area-field.js +1 -1
- package/dist/esm/text-field/text-field.js +1 -1
- package/dist/esm/toggle/toggle.js +1 -1
- package/dist/types/banner/banner.d.ts +4 -3
- package/dist/types/banner/banner.d.ts.map +1 -1
- package/dist/types/button/button.d.ts +2 -11
- package/dist/types/button/button.d.ts.map +1 -1
- package/dist/types/combo-box/combo-box-fuzzy.d.ts +4 -3
- package/dist/types/combo-box/combo-box-fuzzy.d.ts.map +1 -1
- package/dist/types/combo-box/combo-box.d.ts +4 -3
- package/dist/types/combo-box/combo-box.d.ts.map +1 -1
- package/dist/types/field/field.d.ts +2 -2
- package/dist/types/field/field.d.ts.map +1 -1
- package/dist/types/govt-banner/govt-banner.d.ts +1 -1
- package/dist/types/govt-banner/govt-banner.d.ts.map +1 -1
- package/dist/types/index.d.mts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/input/input.d.ts +3 -2
- package/dist/types/input/input.d.ts.map +1 -1
- package/dist/types/select/index.d.ts +2 -0
- package/dist/types/select/index.d.ts.map +1 -0
- package/dist/types/select/select-item.d.ts +9 -0
- package/dist/types/select/select-item.d.ts.map +1 -0
- package/dist/types/select/select.d.ts +24 -0
- package/dist/types/select/select.d.ts.map +1 -0
- package/dist/types/skip-nav-link/skip-nav-link.d.ts +3 -2
- package/dist/types/skip-nav-link/skip-nav-link.d.ts.map +1 -1
- package/dist/types/spinner/use-spinner.d.ts +1 -1
- package/dist/types/spinner/use-spinner.d.ts.map +1 -1
- package/dist/types/system/types.d.ts +1 -1
- package/dist/types/system/types.d.ts.map +1 -1
- package/dist/types/system/utils.d.ts +2 -2
- package/dist/types/system/utils.d.ts.map +1 -1
- package/dist/types/tag-field/tag-field-list.d.ts +6 -6
- package/dist/types/tag-field/tag-field-list.d.ts.map +1 -1
- package/dist/types/tag-field/tag-field-root.d.ts +3 -3
- package/dist/types/tag-field/tag-field-root.d.ts.map +1 -1
- package/dist/types/tag-field/tag-field-state-context.d.ts +2 -2
- package/dist/types/tag-field/tag-field-state-context.d.ts.map +1 -1
- package/dist/types/tag-field/tag-field-tag-list.d.ts +3 -3
- package/dist/types/tag-field/tag-field-tag-list.d.ts.map +1 -1
- package/dist/types/tag-field/tag-field-trigger.d.ts +2 -2
- package/dist/types/tag-field/tag-field-trigger.d.ts.map +1 -1
- package/dist/types/tag-field/tag-field.d.ts +1 -1
- package/dist/types/tag-field/tag-field.d.ts.map +1 -1
- package/dist/types/tag-field/types.d.ts +2 -2
- package/dist/types/tag-field/types.d.ts.map +1 -1
- package/dist/types/tag-field/use-tag-field-state.d.ts +4 -4
- package/dist/types/tag-field/use-tag-field-state.d.ts.map +1 -1
- package/dist/types/tag-field/use-tag-field.d.ts +7 -7
- package/dist/types/tag-field/use-tag-field.d.ts.map +1 -1
- package/dist/types/text-area/text-area.d.ts +3 -2
- package/dist/types/text-area/text-area.d.ts.map +1 -1
- package/dist/types/text-area-field/text-area-field.d.ts +3 -3
- package/dist/types/text-area-field/text-area-field.d.ts.map +1 -1
- package/dist/types/text-field/text-field.d.ts +3 -3
- package/dist/types/text-field/text-field.d.ts.map +1 -1
- package/dist/types/toggle/toggle.d.ts +3 -2
- package/dist/types/toggle/toggle.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var react = require('react');
|
|
7
|
-
var ouiTheme = require('@opengovsg/oui-theme');
|
|
8
7
|
var reactAria = require('react-aria');
|
|
9
8
|
var reactStately = require('react-stately');
|
|
9
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
10
10
|
var circleAlert = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/circle-alert.cjs');
|
|
11
11
|
var info = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/info.cjs');
|
|
12
12
|
var button = require('../button/button.cjs');
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var react = require('react');
|
|
7
|
-
var ouiTheme = require('@opengovsg/oui-theme');
|
|
8
7
|
var utils = require('@react-aria/utils');
|
|
9
8
|
var reactAriaComponents = require('react-aria-components');
|
|
9
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
10
|
+
var ripple = require('../ripple/ripple.cjs');
|
|
10
11
|
var useRipple = require('../ripple/use-ripple.cjs');
|
|
11
12
|
var spinner = require('../spinner/spinner.cjs');
|
|
12
|
-
var ripple = require('../ripple/ripple.cjs');
|
|
13
13
|
|
|
14
14
|
const Button = react.forwardRef(
|
|
15
15
|
({
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var react = require('react');
|
|
7
|
-
var ouiTheme = require('@opengovsg/oui-theme');
|
|
8
7
|
var fuzzysort = require('fuzzysort');
|
|
8
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
9
9
|
var comboBox = require('./combo-box.cjs');
|
|
10
10
|
|
|
11
11
|
function HighlightedText({
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var react = require('react');
|
|
7
|
-
var ouiTheme = require('@opengovsg/oui-theme');
|
|
8
7
|
var reactAria = require('react-aria');
|
|
9
8
|
var reactAriaComponents = require('react-aria-components');
|
|
9
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
10
10
|
var field = require('../field/field.cjs');
|
|
11
11
|
var chevronUp = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/chevron-up.cjs');
|
|
12
12
|
var chevronDown = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/chevron-down.cjs');
|
package/dist/cjs/field/field.cjs
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
'use strict';
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
var ouiTheme = require('@opengovsg/oui-theme');
|
|
7
6
|
var reactAriaComponents = require('react-aria-components');
|
|
7
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
8
8
|
var circleAlert = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/circle-alert.cjs');
|
|
9
9
|
|
|
10
10
|
function Label({ size, className, ...props }) {
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var react = require('react');
|
|
7
|
-
var ouiTheme = require('@opengovsg/oui-theme');
|
|
8
7
|
var reactAria = require('react-aria');
|
|
9
8
|
var reactStately = require('react-stately');
|
|
9
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
10
10
|
var chevronDown = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/chevron-down.cjs');
|
|
11
11
|
var landmark = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/landmark.cjs');
|
|
12
12
|
var externalLink = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/external-link.cjs');
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var useControllableState = require('./hooks/use-controllable-state.cjs');
|
|
5
|
-
var button = require('./button/button.cjs');
|
|
6
|
-
var govtBanner = require('./govt-banner/govt-banner.cjs');
|
|
7
4
|
var ripple = require('./ripple/ripple.cjs');
|
|
8
5
|
var useRipple = require('./ripple/use-ripple.cjs');
|
|
9
6
|
var spinner = require('./spinner/spinner.cjs');
|
|
@@ -12,19 +9,20 @@ var toggle = require('./toggle/toggle.cjs');
|
|
|
12
9
|
var skipNavLink = require('./skip-nav-link/skip-nav-link.cjs');
|
|
13
10
|
var input = require('./input/input.cjs');
|
|
14
11
|
var textField = require('./text-field/text-field.cjs');
|
|
15
|
-
var field = require('./field/field.cjs');
|
|
16
12
|
var textArea = require('./text-area/text-area.cjs');
|
|
17
13
|
var textAreaField = require('./text-area-field/text-area-field.cjs');
|
|
14
|
+
var tagField = require('./tag-field/tag-field.cjs');
|
|
15
|
+
var select = require('./select/select.cjs');
|
|
16
|
+
var useControllableState = require('./hooks/use-controllable-state.cjs');
|
|
17
|
+
var button = require('./button/button.cjs');
|
|
18
|
+
var govtBanner = require('./govt-banner/govt-banner.cjs');
|
|
19
|
+
var field = require('./field/field.cjs');
|
|
18
20
|
var comboBox = require('./combo-box/combo-box.cjs');
|
|
19
21
|
var comboBoxFuzzy = require('./combo-box/combo-box-fuzzy.cjs');
|
|
20
22
|
var banner = require('./banner/banner.cjs');
|
|
21
|
-
var tagField = require('./tag-field/tag-field.cjs');
|
|
22
23
|
|
|
23
24
|
|
|
24
25
|
|
|
25
|
-
exports.useControllableState = useControllableState.useControllableState;
|
|
26
|
-
exports.Button = button.Button;
|
|
27
|
-
exports.GovtBanner = govtBanner.GovtBanner;
|
|
28
26
|
exports.Ripple = ripple.Ripple;
|
|
29
27
|
exports.useRipple = useRipple.useRipple;
|
|
30
28
|
exports.Spinner = spinner.Spinner;
|
|
@@ -33,15 +31,19 @@ exports.Toggle = toggle.Toggle;
|
|
|
33
31
|
exports.SkipNavLink = skipNavLink.SkipNavLink;
|
|
34
32
|
exports.Input = input.Input;
|
|
35
33
|
exports.TextField = textField.TextField;
|
|
34
|
+
exports.TextArea = textArea.TextArea;
|
|
35
|
+
exports.TextAreaField = textAreaField.TextAreaField;
|
|
36
|
+
exports.TagField = tagField.TagField;
|
|
37
|
+
exports.Select = select.Select;
|
|
38
|
+
exports.useControllableState = useControllableState.useControllableState;
|
|
39
|
+
exports.Button = button.Button;
|
|
40
|
+
exports.GovtBanner = govtBanner.GovtBanner;
|
|
36
41
|
exports.Description = field.Description;
|
|
37
42
|
exports.FieldError = field.FieldError;
|
|
38
43
|
exports.FieldGroup = field.FieldGroup;
|
|
39
44
|
exports.Label = field.Label;
|
|
40
|
-
exports.TextArea = textArea.TextArea;
|
|
41
|
-
exports.TextAreaField = textAreaField.TextAreaField;
|
|
42
45
|
exports.ComboBox = comboBox.ComboBox;
|
|
43
46
|
exports.ComboBoxEmptyState = comboBox.ComboBoxEmptyState;
|
|
44
47
|
exports.ComboBoxItem = comboBox.ComboBoxItem;
|
|
45
48
|
exports.ComboBoxFuzzy = comboBoxFuzzy.ComboBoxFuzzy;
|
|
46
49
|
exports.Banner = banner.Banner;
|
|
47
|
-
exports.TagField = tagField.TagField;
|
package/dist/cjs/input/input.cjs
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var react = require('react');
|
|
7
|
-
var ouiTheme = require('@opengovsg/oui-theme');
|
|
8
7
|
var reactAriaComponents = require('react-aria-components');
|
|
8
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
9
9
|
|
|
10
10
|
const Input = react.forwardRef(
|
|
11
11
|
({ size, variant, isDisabled, ...props }, ref) => {
|
|
@@ -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,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var reactAriaComponents = require('react-aria-components');
|
|
6
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
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 reactAriaComponents = require('react-aria-components');
|
|
8
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
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;
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
'use strict';
|
|
4
4
|
|
|
5
5
|
var react = require('react');
|
|
6
|
-
var ouiTheme = require('@opengovsg/oui-theme');
|
|
7
6
|
var useDeepCompare = require('use-deep-compare');
|
|
7
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
8
8
|
var utils = require('../system/utils.cjs');
|
|
9
9
|
|
|
10
10
|
const useSpinner = (originalProps) => {
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
|
|
4
4
|
var jsxRuntime = require('react/jsx-runtime');
|
|
5
5
|
var react = require('react');
|
|
6
|
-
var ouiTheme = require('@opengovsg/oui-theme');
|
|
7
6
|
var reactAriaComponents = require('react-aria-components');
|
|
7
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
8
8
|
var utils = require('../system/utils.cjs');
|
|
9
9
|
var tagFieldStateContext = require('./tag-field-state-context.cjs');
|
|
10
10
|
|
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var react = require('react');
|
|
7
|
-
var ouiTheme = require('@opengovsg/oui-theme');
|
|
8
7
|
var reactAriaComponents = require('react-aria-components');
|
|
8
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
9
|
+
var input = require('../input/input.cjs');
|
|
9
10
|
var tagFieldList = require('./tag-field-list.cjs');
|
|
10
11
|
var tagFieldRoot = require('./tag-field-root.cjs');
|
|
11
12
|
var tagFieldTagList = require('./tag-field-tag-list.cjs');
|
|
12
13
|
var tagFieldTrigger = require('./tag-field-trigger.cjs');
|
|
13
14
|
var chevronDown = require('../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/chevron-down.cjs');
|
|
14
15
|
var field = require('../field/field.cjs');
|
|
15
|
-
var input = require('../input/input.cjs');
|
|
16
16
|
|
|
17
17
|
function TagField({
|
|
18
18
|
classNames,
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var react = require('react');
|
|
7
|
-
var ouiTheme = require('@opengovsg/oui-theme');
|
|
8
7
|
var reactAriaComponents = require('react-aria-components');
|
|
8
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
9
9
|
|
|
10
10
|
const TextArea = react.forwardRef(
|
|
11
11
|
({ size, variant, isDisabled, ...props }, ref) => {
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
'use strict';
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
var ouiTheme = require('@opengovsg/oui-theme');
|
|
7
6
|
var reactAriaComponents = require('react-aria-components');
|
|
7
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
8
8
|
var textArea = require('../text-area/text-area.cjs');
|
|
9
9
|
var field = require('../field/field.cjs');
|
|
10
10
|
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
'use strict';
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
var ouiTheme = require('@opengovsg/oui-theme');
|
|
7
6
|
var reactAriaComponents = require('react-aria-components');
|
|
7
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
8
8
|
var input = require('../input/input.cjs');
|
|
9
9
|
var field = require('../field/field.cjs');
|
|
10
10
|
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var react = require('react');
|
|
7
|
-
var ouiTheme = require('@opengovsg/oui-theme');
|
|
8
7
|
var reactAria = require('react-aria');
|
|
9
8
|
var reactAriaComponents = require('react-aria-components');
|
|
9
|
+
var ouiTheme = require('@opengovsg/oui-theme');
|
|
10
10
|
var utils = require('../system/utils.cjs');
|
|
11
11
|
|
|
12
12
|
const Toggle = ({
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
4
4
|
import { useMemo, useRef } from 'react';
|
|
5
|
-
import { bannerStyles } from '@opengovsg/oui-theme';
|
|
6
5
|
import { useMessageFormatter, useDisclosure } from 'react-aria';
|
|
7
6
|
import { useDisclosureState } from 'react-stately';
|
|
7
|
+
import { bannerStyles } from '@opengovsg/oui-theme';
|
|
8
8
|
import CircleAlert from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/circle-alert.js';
|
|
9
9
|
import Info from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/info.js';
|
|
10
10
|
import { Button } from '../button/button.js';
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
4
4
|
import { forwardRef, useMemo } from 'react';
|
|
5
|
-
import { buttonStyles } from '@opengovsg/oui-theme';
|
|
6
5
|
import { chain } from '@react-aria/utils';
|
|
7
6
|
import { Button as Button$1, composeRenderProps } from 'react-aria-components';
|
|
7
|
+
import { buttonStyles } from '@opengovsg/oui-theme';
|
|
8
|
+
import { Ripple } from '../ripple/ripple.js';
|
|
8
9
|
import { useRipple } from '../ripple/use-ripple.js';
|
|
9
10
|
import { Spinner } from '../spinner/spinner.js';
|
|
10
|
-
import { Ripple } from '../ripple/ripple.js';
|
|
11
11
|
|
|
12
12
|
const Button = forwardRef(
|
|
13
13
|
({
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
import { jsx } from 'react/jsx-runtime';
|
|
4
4
|
import { useDeferredValue, useMemo, useState, useCallback } from 'react';
|
|
5
|
-
import { comboBoxFuzzyHighlightedTextStyles } from '@opengovsg/oui-theme';
|
|
6
5
|
import fuzzysort from 'fuzzysort';
|
|
6
|
+
import { comboBoxFuzzyHighlightedTextStyles } from '@opengovsg/oui-theme';
|
|
7
7
|
import { ComboBox, ComboBoxItem } from './combo-box.js';
|
|
8
8
|
|
|
9
9
|
function HighlightedText({
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
4
|
import { useMemo, useCallback } from 'react';
|
|
5
|
-
import { comboBoxItemStyles, cn, comboBoxStyles, composeTailwindRenderProps, composeRenderProps, comboBoxClearButtonStyles } from '@opengovsg/oui-theme';
|
|
6
5
|
import { useMessageFormatter } from 'react-aria';
|
|
7
6
|
import { ListLayout, ComboBox as ComboBox$1, Input, Button, Virtualizer, Popover, ListBox, ListBoxItem, Text } from 'react-aria-components';
|
|
7
|
+
import { comboBoxItemStyles, cn, comboBoxStyles, composeTailwindRenderProps, composeRenderProps, comboBoxClearButtonStyles } from '@opengovsg/oui-theme';
|
|
8
8
|
import { Label, FieldGroup, Description, FieldError } from '../field/field.js';
|
|
9
9
|
import ChevronUp from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/chevron-up.js';
|
|
10
10
|
import ChevronDown from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/chevron-down.js';
|
package/dist/esm/field/field.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
"use client";
|
|
3
3
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
|
-
import { labelStyles, descriptionStyles, fieldErrorStyles, composeRenderProps, fieldGroupStyles } from '@opengovsg/oui-theme';
|
|
5
4
|
import { Label as Label$1, Text, FieldError as FieldError$1, Group } from 'react-aria-components';
|
|
5
|
+
import { labelStyles, descriptionStyles, fieldErrorStyles, composeRenderProps, fieldGroupStyles } from '@opengovsg/oui-theme';
|
|
6
6
|
import CircleAlert from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/circle-alert.js';
|
|
7
7
|
|
|
8
8
|
function Label({ size, className, ...props }) {
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
4
|
import { useRef } from 'react';
|
|
5
|
-
import { govtBannerStyles, dataAttr, twMerge } from '@opengovsg/oui-theme';
|
|
6
5
|
import { useMessageFormatter, useDisclosure, useButton, useFocusRing, mergeProps } from 'react-aria';
|
|
7
6
|
import { useDisclosureState } from 'react-stately';
|
|
7
|
+
import { govtBannerStyles, dataAttr, twMerge } from '@opengovsg/oui-theme';
|
|
8
8
|
import ChevronDown from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/chevron-down.js';
|
|
9
9
|
import Landmark from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/landmark.js';
|
|
10
10
|
import ExternalLink from '../node_modules/.pnpm/lucide-react@0.475.0_react@19.0.0/node_modules/lucide-react/dist/esm/icons/external-link.js';
|
package/dist/esm/index.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
export { useControllableState } from './hooks/use-controllable-state.js';
|
|
3
|
-
export { Button } from './button/button.js';
|
|
4
|
-
export { GovtBanner } from './govt-banner/govt-banner.js';
|
|
5
2
|
export { Ripple } from './ripple/ripple.js';
|
|
6
3
|
export { useRipple } from './ripple/use-ripple.js';
|
|
7
4
|
export { Spinner } from './spinner/spinner.js';
|
|
@@ -10,10 +7,14 @@ export { Toggle } from './toggle/toggle.js';
|
|
|
10
7
|
export { SkipNavLink } from './skip-nav-link/skip-nav-link.js';
|
|
11
8
|
export { Input } from './input/input.js';
|
|
12
9
|
export { TextField } from './text-field/text-field.js';
|
|
13
|
-
export { Description, FieldError, FieldGroup, Label } from './field/field.js';
|
|
14
10
|
export { TextArea } from './text-area/text-area.js';
|
|
15
11
|
export { TextAreaField } from './text-area-field/text-area-field.js';
|
|
12
|
+
export { TagField } from './tag-field/tag-field.js';
|
|
13
|
+
export { Select } from './select/select.js';
|
|
14
|
+
export { useControllableState } from './hooks/use-controllable-state.js';
|
|
15
|
+
export { Button } from './button/button.js';
|
|
16
|
+
export { GovtBanner } from './govt-banner/govt-banner.js';
|
|
17
|
+
export { Description, FieldError, FieldGroup, Label } from './field/field.js';
|
|
16
18
|
export { ComboBox, ComboBoxEmptyState, ComboBoxItem } from './combo-box/combo-box.js';
|
|
17
19
|
export { ComboBoxFuzzy } from './combo-box/combo-box-fuzzy.js';
|
|
18
20
|
export { Banner } from './banner/banner.js';
|
|
19
|
-
export { TagField } from './tag-field/tag-field.js';
|
package/dist/esm/input/input.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
import { jsx } from 'react/jsx-runtime';
|
|
4
4
|
import { forwardRef } from 'react';
|
|
5
|
-
import { composeRenderProps, inputStyles } from '@opengovsg/oui-theme';
|
|
6
5
|
import { Input as Input$1 } from 'react-aria-components';
|
|
6
|
+
import { composeRenderProps, inputStyles } from '@opengovsg/oui-theme';
|
|
7
7
|
|
|
8
8
|
const Input = forwardRef(
|
|
9
9
|
({ size, variant, isDisabled, ...props }, ref) => {
|
|
@@ -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,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
3
|
+
import { ListBoxItem } from 'react-aria-components';
|
|
4
|
+
import { selectItemStyles, composeRenderProps } from '@opengovsg/oui-theme';
|
|
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 };
|