@opengovsg/oui 0.0.30 → 0.0.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist/cjs/avatar/avatar-context.cjs +12 -0
  2. package/dist/cjs/avatar/avatar-group-context.cjs +88 -0
  3. package/dist/cjs/avatar/avatar-group.cjs +60 -0
  4. package/dist/cjs/avatar/avatar.cjs +132 -0
  5. package/dist/cjs/avatar/hooks/use-img-loading-status.cjs +68 -0
  6. package/dist/cjs/avatar/index.cjs +23 -0
  7. package/dist/cjs/avatar/utils.cjs +9 -0
  8. package/dist/cjs/banner/banner.cjs +1 -1
  9. package/dist/cjs/button/button.cjs +1 -1
  10. package/dist/cjs/calendar/calendar-month-day-selector.cjs +2 -2
  11. package/dist/cjs/checkbox/checkbox.cjs +3 -3
  12. package/dist/cjs/combo-box/combo-box.cjs +2 -2
  13. package/dist/cjs/date-field/date-field.cjs +1 -1
  14. package/dist/cjs/date-picker/date-picker.cjs +4 -5
  15. package/dist/cjs/date-range-picker/date-range-picker.cjs +5 -5
  16. package/dist/cjs/file-dropzone/file-dropzone.cjs +2 -2
  17. package/dist/cjs/file-dropzone/file-info.cjs +1 -1
  18. package/dist/cjs/index.cjs +26 -12
  19. package/dist/cjs/menu/menu.cjs +1 -1
  20. package/dist/cjs/modal/modal-content.cjs +1 -1
  21. package/dist/cjs/node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/user.cjs +22 -0
  22. package/dist/cjs/number-field/number-field.cjs +3 -3
  23. package/dist/cjs/range-calendar/range-calendar.cjs +1 -1
  24. package/dist/cjs/select/select.cjs +89 -17
  25. package/dist/cjs/tag-field/tag-field.cjs +3 -3
  26. package/dist/cjs/text-area-field/text-area-field.cjs +1 -1
  27. package/dist/cjs/text-field/text-field.cjs +1 -1
  28. package/dist/cjs/toast/toast.cjs +1 -1
  29. package/dist/esm/avatar/avatar-context.js +9 -0
  30. package/dist/esm/avatar/avatar-group-context.js +84 -0
  31. package/dist/esm/avatar/avatar-group.js +58 -0
  32. package/dist/esm/avatar/avatar.js +128 -0
  33. package/dist/esm/avatar/hooks/use-img-loading-status.js +66 -0
  34. package/dist/esm/avatar/index.js +13 -0
  35. package/dist/esm/avatar/utils.js +7 -0
  36. package/dist/esm/banner/banner.js +1 -1
  37. package/dist/esm/button/button.js +1 -1
  38. package/dist/esm/calendar/calendar-month-day-selector.js +2 -2
  39. package/dist/esm/checkbox/checkbox.js +3 -3
  40. package/dist/esm/combo-box/combo-box.js +2 -2
  41. package/dist/esm/date-field/date-field.js +1 -1
  42. package/dist/esm/date-picker/date-picker.js +4 -5
  43. package/dist/esm/date-range-picker/date-range-picker.js +5 -5
  44. package/dist/esm/file-dropzone/file-dropzone.js +2 -2
  45. package/dist/esm/file-dropzone/file-info.js +1 -1
  46. package/dist/esm/index.js +8 -3
  47. package/dist/esm/menu/menu.js +1 -1
  48. package/dist/esm/modal/modal-content.js +1 -1
  49. package/dist/esm/node_modules/.pnpm/lucide-react@0.475.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/user.js +17 -0
  50. package/dist/esm/number-field/number-field.js +3 -3
  51. package/dist/esm/range-calendar/range-calendar.js +1 -1
  52. package/dist/esm/select/select.js +92 -20
  53. package/dist/esm/tag-field/tag-field.js +3 -3
  54. package/dist/esm/text-area-field/text-area-field.js +1 -1
  55. package/dist/esm/text-field/text-field.js +1 -1
  56. package/dist/esm/toast/toast.js +1 -1
  57. package/dist/types/avatar/avatar-context.d.ts +12 -0
  58. package/dist/types/avatar/avatar-context.d.ts.map +1 -0
  59. package/dist/types/avatar/avatar-group-context.d.ts +70 -0
  60. package/dist/types/avatar/avatar-group-context.d.ts.map +1 -0
  61. package/dist/types/avatar/avatar-group.d.ts +5 -0
  62. package/dist/types/avatar/avatar-group.d.ts.map +1 -0
  63. package/dist/types/avatar/avatar.d.ts +18 -0
  64. package/dist/types/avatar/avatar.d.ts.map +1 -0
  65. package/dist/types/avatar/hooks/use-img-loading-status.d.ts +4 -0
  66. package/dist/types/avatar/hooks/use-img-loading-status.d.ts.map +1 -0
  67. package/dist/types/avatar/index.d.ts +15 -0
  68. package/dist/types/avatar/index.d.ts.map +1 -0
  69. package/dist/types/avatar/utils.d.ts +2 -0
  70. package/dist/types/avatar/utils.d.ts.map +1 -0
  71. package/dist/types/checkbox/checkbox-group-style-context.d.ts +1 -1
  72. package/dist/types/checkbox/checkbox-group-style-context.d.ts.map +1 -1
  73. package/dist/types/index.d.mts +1 -0
  74. package/dist/types/index.d.ts +1 -0
  75. package/dist/types/index.d.ts.map +1 -1
  76. package/dist/types/menu/menu.d.ts.map +1 -1
  77. package/dist/types/select/select.d.ts +14 -0
  78. package/dist/types/select/select.d.ts.map +1 -1
  79. package/dist/types/system/react-utils/context.d.ts +4 -4
  80. package/dist/types/system/react-utils/context.d.ts.map +1 -1
  81. package/package.json +5 -5
@@ -0,0 +1,70 @@
1
+ import type { ReactNode } from "react";
2
+ import type { AvatarGroupSlots, AvatarGroupVariantProps, AvatarVariantProps, SlotsToClasses } from "@opengovsg/oui-theme";
3
+ import type { ReactRef } from "../system/react-utils";
4
+ import type { HtmlUiProps, PropGetter } from "../system/types";
5
+ import type { AvatarProps } from "./index";
6
+ export type UseAvatarGroupContextReturn = {
7
+ size?: UseAvatarGroupProps["size"];
8
+ color?: UseAvatarGroupProps["color"];
9
+ radius?: UseAvatarGroupProps["radius"];
10
+ prominence?: UseAvatarGroupProps["prominence"];
11
+ };
12
+ export declare const AvatarGroupProvider: import("react").Context<UseAvatarGroupContextReturn | undefined>, useAvatarGroupContext: () => UseAvatarGroupContextReturn | undefined;
13
+ export interface UseAvatarGroupProps extends HtmlUiProps<"div">, AvatarGroupVariantProps, Pick<AvatarVariantProps, "size" | "color" | "prominence" | "radius"> {
14
+ /**
15
+ * Ref to the DOM node.
16
+ */
17
+ ref?: ReactRef<HTMLDivElement | null>;
18
+ /**
19
+ * The maximum number of visible avatars
20
+ * @default 5
21
+ */
22
+ max?: number;
23
+ /**
24
+ * Control the number of avatar not visible
25
+ */
26
+ total?: number;
27
+ /**
28
+ * This allows you to render a custom count component.
29
+ */
30
+ renderCount?: (count: number) => ReactNode;
31
+ /**
32
+ * Props to be passed to the count component.
33
+ */
34
+ countProps?: Partial<AvatarProps>;
35
+ /**
36
+ * Classname or List of classes to change the classNames of the avatar group.
37
+ * if `className` is passed, it will be added to the base slot.
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * <AvatarGroup classNames={{
42
+ * base: "base-classes",
43
+ * count: "count-classes"
44
+ * }} />
45
+ * ```
46
+ */
47
+ classNames?: SlotsToClasses<AvatarGroupSlots>;
48
+ }
49
+ export declare function useAvatarGroup(props?: UseAvatarGroupProps): {
50
+ Component: import("../system/types").As<any>;
51
+ context: UseAvatarGroupContextReturn;
52
+ remainingCount: number;
53
+ clones: import("react").DetailedReactHTMLElement<import("react").HTMLAttributes<HTMLElement>, HTMLElement>[];
54
+ renderCount: ((count: number) => ReactNode) | undefined;
55
+ getAvatarGroupProps: PropGetter;
56
+ getAvatarGroupCountProps: () => {
57
+ classNames?: SlotsToClasses<import("@opengovsg/oui-theme").AvatarSlots>;
58
+ className: string;
59
+ name?: string;
60
+ getInitials?: (name: string) => string;
61
+ size?: "md" | "sm" | "xs" | "2xs" | undefined;
62
+ color?: "white" | "primary" | undefined;
63
+ radius?: "none" | "lg" | "md" | "sm" | "full" | undefined;
64
+ prominence?: "subtle" | "strong" | undefined;
65
+ isInGroup?: boolean | undefined;
66
+ children?: ReactNode | undefined;
67
+ };
68
+ };
69
+ export type UseAvatarReturn = ReturnType<typeof useAvatarGroup>;
70
+ //# sourceMappingURL=avatar-group-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar-group-context.d.ts","sourceRoot":"","sources":["../../../src/avatar/avatar-group-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACf,MAAM,sBAAsB,CAAA;AAG7B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAI1C,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,CAAC,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAA;IAClC,KAAK,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAA;IACpC,MAAM,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IACtC,UAAU,CAAC,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAA;CAC/C,CAAA;AAED,eAAO,MAAO,mBAAmB,oEAAE,qBAAqB,+CAMtD,CAAA;AAEF,MAAM,WAAW,mBACf,SAAQ,WAAW,CAAC,KAAK,CAAC,EACxB,uBAAuB,EACvB,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,QAAQ,CAAC;IACtE;;OAEG;IACH,GAAG,CAAC,EAAE,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;IACrC;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,CAAA;IAE1C;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IAEjC;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAA;CAC9C;AAED,wBAAgB,cAAc,CAAC,KAAK,GAAE,mBAAwB;;;;;0BAtBtC,MAAM,KAAK,SAAS;;;;;;;;;;;;;;EAyG3C;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { UseAvatarGroupProps } from "./avatar-group-context";
2
+ export interface AvatarGroupProps extends UseAvatarGroupProps {
3
+ }
4
+ export declare const AvatarGroup: import("../system/utils").InternalForwardRefRenderFunction<"div", AvatarGroupProps, never>;
5
+ //# sourceMappingURL=avatar-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar-group.d.ts","sourceRoot":"","sources":["../../../src/avatar/avatar-group.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAMjE,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB;CAAG;AAEhE,eAAO,MAAM,WAAW,4FAoDtB,CAAA"}
@@ -0,0 +1,18 @@
1
+ import type { PropsWithChildren } from "react";
2
+ import type { AvatarSlots, AvatarVariantProps, SlotsToClasses } from "@opengovsg/oui-theme";
3
+ export interface AvatarProps extends AvatarVariantProps, PropsWithChildren {
4
+ classNames?: SlotsToClasses<AvatarSlots>;
5
+ className?: string;
6
+ name?: string;
7
+ getInitials?: (name: string) => string;
8
+ }
9
+ export declare const AvatarRoot: import("../system/utils").InternalForwardRefRenderFunction<"span", AvatarProps, never>;
10
+ export interface AvatarImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {
11
+ src?: string;
12
+ }
13
+ export declare const AvatarImage: import("../system/utils").InternalForwardRefRenderFunction<"img", AvatarImageProps, never>;
14
+ export interface AvatarFallbackProps {
15
+ children?: React.ReactNode;
16
+ }
17
+ export declare const AvatarFallback: import("../system/utils").InternalForwardRefRenderFunction<"div", AvatarFallbackProps, never>;
18
+ //# sourceMappingURL=avatar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../../src/avatar/avatar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAK9C,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAClB,cAAc,EACf,MAAM,sBAAsB,CAAA;AAW7B,MAAM,WAAW,WAAY,SAAQ,kBAAkB,EAAE,iBAAiB;IACxE,UAAU,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAA;IACxC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;CACvC;AAED,eAAO,MAAM,UAAU,wFA8DtB,CAAA;AAED,MAAM,WAAW,gBACf,SAAQ,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC;IACjD,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,eAAO,MAAM,WAAW,4FA8BvB,CAAA;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B;AACD,eAAO,MAAM,cAAc,+FAiC1B,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { ComponentPropsWithoutRef } from "react";
2
+ export type ImageLoadingStatus = "idle" | "loading" | "loaded" | "error";
3
+ export declare function useImageLoadingStatus(src: string | undefined, { referrerPolicy, crossOrigin }: ComponentPropsWithoutRef<"img">): ImageLoadingStatus;
4
+ //# sourceMappingURL=use-img-loading-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-img-loading-status.d.ts","sourceRoot":"","sources":["../../../../src/avatar/hooks/use-img-loading-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAA;AAGrD,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAA;AAiCxE,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,wBAAwB,CAAC,KAAK,CAAC,sBA6CjE"}
@@ -0,0 +1,15 @@
1
+ import { AvatarFallback, AvatarImage, AvatarRoot } from "./avatar";
2
+ export type { AvatarFallbackProps, AvatarImageProps, AvatarProps, } from "./avatar";
3
+ export declare const Avatar: import("../system/utils").InternalForwardRefRenderFunction<"span", import("./avatar").AvatarProps, never> & {
4
+ Root: import("../system/utils").InternalForwardRefRenderFunction<"span", import("./avatar").AvatarProps, never>;
5
+ Image: import("../system/utils").InternalForwardRefRenderFunction<"img", import("./avatar").AvatarImageProps, never>;
6
+ Fallback: import("../system/utils").InternalForwardRefRenderFunction<"div", import("./avatar").AvatarFallbackProps, never>;
7
+ };
8
+ export { AvatarRoot, AvatarImage, AvatarFallback };
9
+ export { AvatarContext, useAvatarContext } from "./avatar-context";
10
+ export type { UseAvatarContextReturn } from "./avatar-context";
11
+ export { AvatarGroup } from "./avatar-group";
12
+ export type { AvatarGroupProps } from "./avatar-group";
13
+ export { AvatarGroupProvider, useAvatarGroup } from "./avatar-group-context";
14
+ export type { UseAvatarGroupContextReturn, UseAvatarGroupProps, } from "./avatar-group-context";
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/avatar/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAElE,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,GACZ,MAAM,UAAU,CAAA;AAEjB,eAAO,MAAM,MAAM;;;;CAIjB,CAAA;AAGF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,CAAA;AAGlD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAClE,YAAY,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAG9D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAGtD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5E,YAAY,EACV,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,wBAAwB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const getInitialsFromText: (text: string, limit?: number) => string;
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/avatar/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,SAAU,MAAM,qBAAc,MAU7D,CAAA"}
@@ -2,5 +2,5 @@ import type { CheckboxProps } from "./checkbox";
2
2
  export interface UseProvideCheckboxGroupStylesReturn {
3
3
  size: CheckboxProps["size"];
4
4
  }
5
- export declare const CheckboxGroupStyleContext: import("react").Context<UseProvideCheckboxGroupStylesReturn>, useCheckboxGroupStyleContext: () => UseProvideCheckboxGroupStylesReturn;
5
+ export declare const CheckboxGroupStyleContext: import("react").Context<UseProvideCheckboxGroupStylesReturn | undefined>, useCheckboxGroupStyleContext: () => UseProvideCheckboxGroupStylesReturn | undefined;
6
6
  //# sourceMappingURL=checkbox-group-style-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox-group-style-context.d.ts","sourceRoot":"","sources":["../../../src/checkbox/checkbox-group-style-context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAG/C,MAAM,WAAW,mCAAmC;IAClD,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAC5B;AAED,eAAO,MAAO,yBAAyB,gEAAE,4BAA4B,2CAOjE,CAAA"}
1
+ {"version":3,"file":"checkbox-group-style-context.d.ts","sourceRoot":"","sources":["../../../src/checkbox/checkbox-group-style-context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAG/C,MAAM,WAAW,mCAAmC;IAClD,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAC5B;AAED,eAAO,MAAO,yBAAyB,4EAAE,4BAA4B,uDAOjE,CAAA"}
@@ -30,4 +30,5 @@ export * from "./number-field";
30
30
  export * from "./modal";
31
31
  export * from "./toast";
32
32
  export * from "./navbar";
33
+ export * from "./avatar";
33
34
  //# sourceMappingURL=index.d.ts.map
@@ -30,4 +30,5 @@ export * from "./number-field";
30
30
  export * from "./modal";
31
31
  export * from "./toast";
32
32
  export * from "./navbar";
33
+ export * from "./avatar";
33
34
  //# 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;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,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;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,qBAAqB,CAAA;AACnC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../../src/menu/menu.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,aAAa,IAAI,iBAAiB,EAClC,SAAS,IAAI,aAAa,EAC1B,gBAAgB,IAAI,oBAAoB,EACxC,YAAY,EAEZ,cAAc,EACf,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EAIL,WAAW,IAAI,eAAe,EAQ/B,MAAM,uBAAuB,CAAA;AAE9B,OAAO,KAAK,EACV,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACf,MAAM,sBAAsB,CAAA;AAS7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAK9C,eAAO,MAAO,kBAAkB,gEAAE,qBAAqB,2CAMrD,CAAA;AACF,MAAM,WAAW,SAAS,CAAC,CAAC,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC,EAAE,gBAAgB;IACtE,SAAS,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,CAAA;IACrC,UAAU,CAAC,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAA;CAC9C;AA4CD,eAAO,MAAM,IAAI,GA1CE,CAAC,SAAS,MAAM,0EAYxB,MACP,SA6B4C,CAAA;AAEhD,MAAM,WAAW,aACf,SAAQ,iBAAiB,EACvB,uBAAuB;IACzB,UAAU,CAAC,EAAE,cAAc,CAAC,oBAAoB,CAAC,CAAA;IACjD,qBAAqB,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAA;IAC9C,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAA;IAE5C;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC9B;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC7B;AAED,eAAO,MAAM,QAAQ,kGA+HnB,CAAA;AAEF,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,2CASlD;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,CACjC,SAAQ,oBAAoB,CAAC,CAAC,CAAC,EAC7B,uBAAuB;IACzB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,CAAC,EAAE,CAAA;IACX,UAAU,CAAC,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAA;CACrD;AAwCD,eAAO,MAAM,WAAW,GAtCE,CAAC,SAAS,MAAM,8EAzM/B,MACP,SA8O0D,CAAA;AAE9D,eAAO,MAAM,WAAW,wBAAkB,CAAA;AAC1C,eAAO,MAAM,cAAc,gEACmytD,MAAO,aAAa,wDADlytD,CAAA"}
1
+ {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../../src/menu/menu.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,aAAa,IAAI,iBAAiB,EAClC,SAAS,IAAI,aAAa,EAC1B,gBAAgB,IAAI,oBAAoB,EACxC,YAAY,EAEZ,cAAc,EACf,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EAIL,WAAW,IAAI,eAAe,EAQ/B,MAAM,uBAAuB,CAAA;AAE9B,OAAO,KAAK,EACV,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACf,MAAM,sBAAsB,CAAA;AAS7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAK9C,eAAO,MAAO,kBAAkB,gEAAE,qBAAqB,2CAOrD,CAAA;AACF,MAAM,WAAW,SAAS,CAAC,CAAC,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC,EAAE,gBAAgB;IACtE,SAAS,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,CAAA;IACrC,UAAU,CAAC,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAA;CAC9C;AA4CD,eAAO,MAAM,IAAI,GA1CE,CAAC,SAAS,MAAM,0EAY/B,MAAK,SA8BuC,CAAA;AAEhD,MAAM,WAAW,aACf,SAAQ,iBAAiB,EACvB,uBAAuB;IACzB,UAAU,CAAC,EAAE,cAAc,CAAC,oBAAoB,CAAC,CAAA;IACjD,qBAAqB,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAA;IAC9C,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAA;IAE5C;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC9B;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC7B;AAED,eAAO,MAAM,QAAQ,kGA+HnB,CAAA;AAEF,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,2CASlD;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,CACjC,SAAQ,oBAAoB,CAAC,CAAC,CAAC,EAC7B,uBAAuB;IACzB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,CAAC,EAAE,CAAA;IACX,UAAU,CAAC,EAAE,cAAc,CAAC,uBAAuB,CAAC,CAAA;CACrD;AAwCD,eAAO,MAAM,WAAW,GAtCE,CAAC,SAAS,MAAM,8EAzMtC,MAAK,SA+OqD,CAAA;AAE9D,eAAO,MAAM,WAAW,wBAAkB,CAAA;AAC1C,eAAO,MAAM,cAAc,gEAC0xtD,MAAO,aAAa,wDADzxtD,CAAA"}
@@ -13,6 +13,20 @@ export interface SelectProps<T> extends Omit<AriaSelectProps, "children">, Varia
13
13
  /** The list of Select options to render */
14
14
  items?: NonNullable<ListBoxProps<T>["items"]>;
15
15
  children?: ListBoxProps<T>["children"];
16
+ /**
17
+ * Enable search/autocomplete functionality with a search field
18
+ * @default false
19
+ */
20
+ enableSearch?: boolean;
21
+ /**
22
+ * Placeholder text for the search field.
23
+ * If not provided, a localized default will be used.
24
+ */
25
+ searchPlaceholder?: string;
26
+ /**
27
+ * Icon to display in the search field. If not provided, no icon will be displayed.
28
+ */
29
+ searchIcon?: React.ReactNode;
16
30
  }
17
31
  export declare function Select<T extends object>({ label, description, classNames, errorMessage, ...originalProps }: SelectProps<T>): import("react/jsx-runtime").JSX.Element;
18
32
  //# sourceMappingURL=select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/select/select.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,IAAI,eAAe,EAC9B,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,uBAAuB,CAAA;AAY9B,OAAO,KAAK,EAEV,kBAAkB,EAClB,cAAc,EACd,YAAY,EACb,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAsB,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAQvE,MAAM,WAAW,WAAW,CAAC,CAAC,CAC5B,SAAQ,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,EACvC,YAAY,CAAC,OAAO,YAAY,CAAC;IACnC,UAAU,CAAC,EAAE,cAAc,CAAC,kBAAkB,GAAG,OAAO,CAAC,CAAA;IAEzD;;OAEG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IAErC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAA;IAEpC,YAAY,CAAC,EACT,KAAK,CAAC,SAAS,GACf,CAAC,CAAC,UAAU,EAAE,gBAAgB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAA;IAEvD,2CAA2C;IAC3C,KAAK,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;IAE7C,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;CACvC;AAeD,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,EACvC,KAAK,EACL,WAAW,EACX,UAAU,EACV,YAAY,EACZ,GAAG,aAAa,EACjB,EAAE,WAAW,CAAC,CAAC,CAAC,2CAqFhB"}
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/select/select.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,WAAW,IAAI,eAAe,EAC9B,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,uBAAuB,CAAA;AAiB9B,OAAO,KAAK,EAEV,kBAAkB,EAClB,cAAc,EACd,YAAY,EACb,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAA0B,YAAY,EAAE,MAAM,sBAAsB,CAAA;AA2B3E,MAAM,WAAW,WAAW,CAAC,CAAC,CAC5B,SAAQ,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,EACvC,YAAY,CAAC,OAAO,YAAY,CAAC;IACnC,UAAU,CAAC,EAAE,cAAc,CAAC,kBAAkB,GAAG,OAAO,CAAC,CAAA;IAEzD;;OAEG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IAErC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAA;IAEpC,YAAY,CAAC,EACT,KAAK,CAAC,SAAS,GACf,CAAC,CAAC,UAAU,EAAE,gBAAgB,KAAK,KAAK,CAAC,SAAS,CAAC,CAAA;IAEvD,2CAA2C;IAC3C,KAAK,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;IAE7C,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IAEtC;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC7B;AAeD,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,EACvC,KAAK,EACL,WAAW,EACX,UAAU,EACV,YAAY,EACZ,GAAG,aAAa,EACjB,EAAE,WAAW,CAAC,CAAC,CAAC,2CA+IhB"}
@@ -1,9 +1,9 @@
1
- export interface CreateContextOptions<T = any> {
1
+ export interface CreateContextOptions<T = any, S extends boolean = true> {
2
2
  /**
3
3
  * If `true`, React will throw if context is `null` or `undefined`
4
4
  * In some cases, you might want to support nested context, so you can set it to `false`
5
5
  */
6
- strict?: boolean;
6
+ strict?: S;
7
7
  /**
8
8
  * Error message to throw if the context is `undefined`
9
9
  */
@@ -14,11 +14,11 @@ export interface CreateContextOptions<T = any> {
14
14
  name?: string;
15
15
  defaultValue?: T;
16
16
  }
17
- export type CreateContextReturn<T> = [React.Context<T>, () => T];
17
+ export type CreateContextReturn<T, S extends boolean> = S extends true ? [React.Context<T>, () => T] : [React.Context<T | undefined>, () => T | undefined];
18
18
  /**
19
19
  * Creates a named context, provider, and hook.
20
20
  *
21
21
  * @param options - create context options
22
22
  */
23
- export declare function createContext<ContextType>(options?: CreateContextOptions<ContextType>): CreateContextReturn<ContextType>;
23
+ export declare function createContext<ContextType, S extends boolean = true>(options?: CreateContextOptions<ContextType, S>): CreateContextReturn<ContextType, S>;
24
24
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/system/react-utils/context.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,GAAG;IAC3C;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,YAAY,CAAC,EAAE,CAAC,CAAA;CACjB;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;AAEhE;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,WAAW,EACvC,OAAO,GAAE,oBAAoB,CAAC,WAAW,CAAM,GAC9C,mBAAmB,CAAC,WAAW,CAAC,CA2BlC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/system/react-utils/context.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,OAAO,GAAG,IAAI;IACrE;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,CAAA;IACV;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,YAAY,CAAC,EAAE,CAAC,CAAA;CACjB;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,IAAI,CAAC,SAAS,IAAI,GAClE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAC3B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,CAAA;AAEvD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,CAAC,SAAS,OAAO,GAAG,IAAI,EACjE,OAAO,GAAE,oBAAoB,CAAC,WAAW,EAAE,CAAC,CAAM,GACjD,mBAAmB,CAAC,WAAW,EAAE,CAAC,CAAC,CA2BrC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengovsg/oui",
3
- "version": "0.0.30",
3
+ "version": "0.0.32",
4
4
  "sideEffects": false,
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "type": "module",
@@ -35,7 +35,7 @@
35
35
  "./package.json": "./package.json"
36
36
  },
37
37
  "devDependencies": {
38
- "@storybook/react-vite": "10.1.2",
38
+ "@storybook/react-vite": "10.1.10",
39
39
  "@types/lodash-es": "^4.17.12",
40
40
  "@types/prop-types": "^15.7.15",
41
41
  "@types/react": "^19.2.7",
@@ -47,11 +47,11 @@
47
47
  "prettier": "^3.5.3",
48
48
  "react": "^19.2.3",
49
49
  "react-aria-components": "^1.13.0",
50
- "storybook": "10.1.2",
50
+ "storybook": "10.1.10",
51
51
  "tsx": "^4.21.0",
52
52
  "typescript": "5.7.3",
53
- "@opengovsg/oui-theme": "0.0.30",
54
53
  "@oui/chromatic": "0.0.0",
54
+ "@opengovsg/oui-theme": "0.0.32",
55
55
  "@oui/eslint-config": "0.0.0",
56
56
  "@oui/prettier-config": "0.0.0",
57
57
  "@oui/typescript-config": "0.0.0"
@@ -88,7 +88,7 @@
88
88
  "motion": ">=11.12.0 || >=12.0.0-alpha.1",
89
89
  "react": ">= 18",
90
90
  "react-aria-components": "^1.13.0",
91
- "@opengovsg/oui-theme": "0.0.30"
91
+ "@opengovsg/oui-theme": "0.0.32"
92
92
  },
93
93
  "scripts": {
94
94
  "build": "tsx ../../tooling/build-scripts/main.ts --dts --clean",