@prizmui/components 0.1.3 → 0.1.5

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 (51) hide show
  1. package/dist/components/Popover/Popover.context.d.ts +8 -0
  2. package/dist/components/Popover/Popover.context.d.ts.map +1 -0
  3. package/dist/components/Popover/Popover.context.js +2 -0
  4. package/dist/components/Popover/Popover.d.ts +4 -0
  5. package/dist/components/Popover/Popover.d.ts.map +1 -0
  6. package/dist/components/Popover/Popover.js +14 -0
  7. package/dist/components/Popover/Popover.types.d.ts +15 -0
  8. package/dist/components/Popover/Popover.types.d.ts.map +1 -0
  9. package/dist/components/Popover/Popover.types.js +1 -0
  10. package/dist/components/Popover/PopoverContent.d.ts +4 -0
  11. package/dist/components/Popover/PopoverContent.d.ts.map +1 -0
  12. package/dist/components/Popover/PopoverContent.js +8 -0
  13. package/dist/components/Popover/PopoverSurface.d.ts +4 -0
  14. package/dist/components/Popover/PopoverSurface.d.ts.map +1 -0
  15. package/dist/components/Popover/PopoverSurface.js +34 -0
  16. package/dist/components/Popover/PopoverTrigger.d.ts +4 -0
  17. package/dist/components/Popover/PopoverTrigger.d.ts.map +1 -0
  18. package/dist/components/Popover/PopoverTrigger.js +28 -0
  19. package/dist/components/Popover/index.d.ts +8 -0
  20. package/dist/components/Popover/index.d.ts.map +1 -0
  21. package/dist/components/Popover/index.js +4 -0
  22. package/dist/components/Popover/renderPopoverContent.d.ts +4 -0
  23. package/dist/components/Popover/renderPopoverContent.d.ts.map +1 -0
  24. package/dist/components/Popover/renderPopoverContent.js +7 -0
  25. package/dist/components/Popover/renderPopoverTrigger.d.ts +4 -0
  26. package/dist/components/Popover/renderPopoverTrigger.d.ts.map +1 -0
  27. package/dist/components/Popover/renderPopoverTrigger.js +6 -0
  28. package/dist/components/Popover/usePopoverContent.d.ts +3 -0
  29. package/dist/components/Popover/usePopoverContent.d.ts.map +1 -0
  30. package/dist/components/Popover/usePopoverContent.js +39 -0
  31. package/dist/components/Popover/usePopoverContentStyles.styles.d.ts +5 -0
  32. package/dist/components/Popover/usePopoverContentStyles.styles.d.ts.map +1 -0
  33. package/dist/components/Popover/usePopoverContentStyles.styles.js +19 -0
  34. package/dist/components/Popover/usePopoverSurfaceStyles.styles.d.ts +5 -0
  35. package/dist/components/Popover/usePopoverSurfaceStyles.styles.d.ts.map +1 -0
  36. package/dist/components/Popover/usePopoverSurfaceStyles.styles.js +14 -0
  37. package/dist/components/Popover/usePopoverTrigger.d.ts +3 -0
  38. package/dist/components/Popover/usePopoverTrigger.d.ts.map +1 -0
  39. package/dist/components/Popover/usePopoverTrigger.js +31 -0
  40. package/dist/components/PrizmProvider/ThemeContext.d.ts +3 -0
  41. package/dist/components/PrizmProvider/ThemeContext.d.ts.map +1 -0
  42. package/dist/components/PrizmProvider/ThemeContext.js +2 -0
  43. package/dist/components/PrizmProvider/index.d.ts +1 -0
  44. package/dist/components/PrizmProvider/index.d.ts.map +1 -1
  45. package/dist/components/PrizmProvider/index.js +1 -0
  46. package/dist/components/PrizmProvider/renderProvider.d.ts.map +1 -1
  47. package/dist/components/PrizmProvider/renderProvider.js +2 -1
  48. package/dist/index.d.ts +3 -0
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +2 -0
  51. package/package.json +4 -4
@@ -0,0 +1,8 @@
1
+ import type { StateObject } from 'jsx-framework-test-pb';
2
+ export type PopoverContextValue = {
3
+ open: StateObject<boolean>;
4
+ triggerId: string;
5
+ contentId: string;
6
+ };
7
+ export declare const PopoverContext: import("jsx-framework-test-pb").Context<PopoverContextValue | null>;
8
+ //# sourceMappingURL=Popover.context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popover.context.d.ts","sourceRoot":"","sources":["../../../src/components/Popover/Popover.context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,MAAM,mBAAmB,GAAG;IAC9B,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,cAAc,qEAAkD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { createContext } from 'jsx-framework-test-pb';
2
+ export const PopoverContext = createContext(null);
@@ -0,0 +1,4 @@
1
+ import type { FC } from 'jsx-framework-test-pb';
2
+ import type { PopoverProps } from './Popover.types';
3
+ export declare const Popover: FC<PopoverProps>;
4
+ //# sourceMappingURL=Popover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popover.d.ts","sourceRoot":"","sources":["../../../src/components/Popover/Popover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAGhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAIpD,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC,YAAY,CAepC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx } from "jsx-framework-test-pb/jsx-runtime";
2
+ import { state } from 'jsx-framework-test-pb';
3
+ import { PopoverContext } from './Popover.context';
4
+ let _popoverId = 0;
5
+ export const Popover = (props) => {
6
+ const { children, defaultOpen = false } = props;
7
+ const open = state(defaultOpen);
8
+ const id = ++_popoverId;
9
+ return (_jsx(PopoverContext.Provider, { value: {
10
+ open,
11
+ triggerId: `c-popover-trigger-${id}`,
12
+ contentId: `c-popover-content-${id}`,
13
+ }, children: children }));
14
+ };
@@ -0,0 +1,15 @@
1
+ import type { ComponentProps, ComponentState, Slot } from '../../utilities';
2
+ export type PopoverProps = {
3
+ children?: any;
4
+ /** @default false */
5
+ defaultOpen?: boolean;
6
+ };
7
+ export type PopoverTriggerProps = {
8
+ children?: any;
9
+ };
10
+ export type PopoverSurfaceSlots = {
11
+ root: NonNullable<Slot<'div'>>;
12
+ };
13
+ export type PopoverSurfaceProps = ComponentProps<PopoverSurfaceSlots>;
14
+ export type PopoverSurfaceState = ComponentState<PopoverSurfaceSlots>;
15
+ //# sourceMappingURL=Popover.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popover.types.d.ts","sourceRoot":"","sources":["../../../src/components/Popover/Popover.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAI5E,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,qBAAqB;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAIF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,QAAQ,CAAC,EAAE,GAAG,CAAC;CAClB,CAAC;AAIF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,mBAAmB,CAAC,CAAC;AAEtE,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import type { FC } from 'jsx-framework-test-pb';
2
+ import type { PopoverContentProps } from './Popover.types';
3
+ export declare const PopoverContent: FC<PopoverContentProps>;
4
+ //# sourceMappingURL=PopoverContent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PopoverContent.d.ts","sourceRoot":"","sources":["../../../src/components/Popover/PopoverContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAK3D,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAMlD,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { usePopoverContent } from './usePopoverContent';
2
+ import { usePopoverContentStyles } from './usePopoverContentStyles.styles';
3
+ import { renderPopoverContent } from './renderPopoverContent';
4
+ export const PopoverContent = (props) => {
5
+ const state = usePopoverContent(props);
6
+ usePopoverContentStyles(state);
7
+ return renderPopoverContent(state);
8
+ };
@@ -0,0 +1,4 @@
1
+ import type { FC } from 'jsx-framework-test-pb';
2
+ import type { PopoverSurfaceProps } from './Popover.types';
3
+ export declare const PopoverSurface: FC<PopoverSurfaceProps>;
4
+ //# sourceMappingURL=PopoverSurface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PopoverSurface.d.ts","sourceRoot":"","sources":["../../../src/components/Popover/PopoverSurface.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAMhD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAG3D,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CA0ClD,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { jsx as _jsx } from "jsx-framework-test-pb/jsx-runtime";
2
+ import { useContext } from 'jsx-framework-test-pb';
3
+ import { PrizmProvider } from '../PrizmProvider/PrizmProvider';
4
+ import { ThemeContext } from '../PrizmProvider/ThemeContext';
5
+ import { PopoverContext } from './Popover.context';
6
+ import { usePopoverSurfaceBaseClass, popoverSurfaceClassNames } from './usePopoverSurfaceStyles.styles';
7
+ export const PopoverSurface = (props) => {
8
+ const context = useContext(PopoverContext);
9
+ const theme = useContext(ThemeContext);
10
+ const surfaceClass = usePopoverSurfaceBaseClass();
11
+ const { children } = props;
12
+ // Return a reactive function — the framework calls createReactiveChild on it,
13
+ // so the surface is added to / removed from the DOM as open.val changes.
14
+ return (() => {
15
+ if (!context?.open.val || !theme)
16
+ return null;
17
+ const trigger = document.getElementById(context.triggerId);
18
+ const rect = trigger?.getBoundingClientRect();
19
+ return (_jsx(PrizmProvider, { theme: theme, style: {
20
+ position: 'absolute',
21
+ top: '0',
22
+ left: '0',
23
+ right: '0',
24
+ bottom: '0',
25
+ zIndex: '1000000',
26
+ backgroundColor: 'transparent',
27
+ pointerEvents: 'none',
28
+ }, children: _jsx("div", { className: `${popoverSurfaceClassNames.root} ${surfaceClass}`, style: {
29
+ position: 'absolute',
30
+ top: rect ? `${rect.bottom + 8}px` : '0',
31
+ left: rect ? `${rect.left}px` : '0',
32
+ }, children: children }) }));
33
+ });
34
+ };
@@ -0,0 +1,4 @@
1
+ import type { FC } from 'jsx-framework-test-pb';
2
+ import type { PopoverTriggerProps } from './Popover.types';
3
+ export declare const PopoverTrigger: FC<PopoverTriggerProps>;
4
+ //# sourceMappingURL=PopoverTrigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PopoverTrigger.d.ts","sourceRoot":"","sources":["../../../src/components/Popover/PopoverTrigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAIhD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CA2BlD,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { useContext, isElement } from 'jsx-framework-test-pb';
2
+ import { PopoverContext } from './Popover.context';
3
+ export const PopoverTrigger = (props) => {
4
+ const context = useContext(PopoverContext);
5
+ const children = Array.isArray(props.children) ? props.children : [props.children];
6
+ const child = children[0];
7
+ if (!isElement(child))
8
+ return child;
9
+ if (!context)
10
+ return child;
11
+ const { open, triggerId, contentId } = context;
12
+ const existingOnClick = child.props.onClick;
13
+ return {
14
+ ...child,
15
+ props: {
16
+ ...child.props,
17
+ id: triggerId,
18
+ 'aria-expanded': () => open.val,
19
+ 'aria-controls': contentId,
20
+ 'aria-haspopup': 'true',
21
+ onClick: (e) => {
22
+ open.val = !open.val;
23
+ if (typeof existingOnClick === 'function')
24
+ existingOnClick(e);
25
+ },
26
+ },
27
+ };
28
+ };
@@ -0,0 +1,8 @@
1
+ export { Popover } from './Popover';
2
+ export type { PopoverProps } from './Popover.types';
3
+ export { PopoverTrigger } from './PopoverTrigger';
4
+ export type { PopoverTriggerProps } from './Popover.types';
5
+ export { PopoverSurface } from './PopoverSurface';
6
+ export type { PopoverSurfaceProps, PopoverSurfaceSlots, PopoverSurfaceState } from './Popover.types';
7
+ export { popoverSurfaceClassNames } from './usePopoverSurfaceStyles.styles';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Popover/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACrG,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { Popover } from './Popover';
2
+ export { PopoverTrigger } from './PopoverTrigger';
3
+ export { PopoverSurface } from './PopoverSurface';
4
+ export { popoverSurfaceClassNames } from './usePopoverSurfaceStyles.styles';
@@ -0,0 +1,4 @@
1
+ import type { JSXElement } from '../../utilities';
2
+ import type { PopoverContentState } from './Popover.types';
3
+ export declare const renderPopoverContent: (state: PopoverContentState) => JSXElement;
4
+ //# sourceMappingURL=renderPopoverContent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderPopoverContent.d.ts","sourceRoot":"","sources":["../../../src/components/Popover/renderPopoverContent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAuB,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEhF,eAAO,MAAM,oBAAoB,GAAI,OAAO,mBAAmB,KAAG,UAOjE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "jsx-framework-test-pb/jsx-runtime";
2
+ import { createPortal } from 'jsx-framework-test-pb';
3
+ import { assertSlots } from '../../utilities';
4
+ export const renderPopoverContent = (state) => {
5
+ assertSlots(state);
6
+ return createPortal(_jsx(state.root, { children: state.root.children }), document.body);
7
+ };
@@ -0,0 +1,4 @@
1
+ import type { JSXElement } from '../../utilities';
2
+ import type { PopoverTriggerState } from './Popover.types';
3
+ export declare const renderPopoverTrigger: (state: PopoverTriggerState) => JSXElement;
4
+ //# sourceMappingURL=renderPopoverTrigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderPopoverTrigger.d.ts","sourceRoot":"","sources":["../../../src/components/Popover/renderPopoverTrigger.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAuB,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEhF,eAAO,MAAM,oBAAoB,GAAI,OAAO,mBAAmB,KAAG,UAQjE,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "jsx-framework-test-pb/jsx-runtime";
2
+ import { assertSlots } from '../../utilities';
3
+ export const renderPopoverTrigger = (state) => {
4
+ assertSlots(state);
5
+ return (_jsx(state.root, { children: state.root.children }));
6
+ };
@@ -0,0 +1,3 @@
1
+ import type { PopoverContentProps, PopoverContentState } from './Popover.types';
2
+ export declare const usePopoverContent: (props: PopoverContentProps) => PopoverContentState;
3
+ //# sourceMappingURL=usePopoverContent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePopoverContent.d.ts","sourceRoot":"","sources":["../../../src/components/Popover/usePopoverContent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGhF,eAAO,MAAM,iBAAiB,GAAI,OAAO,mBAAmB,KAAG,mBAqC9D,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { useContext } from 'jsx-framework-test-pb';
2
+ import { getIntrinsicElementProps, slot } from '../../utilities';
3
+ import { PopoverContext } from './Popover.context';
4
+ export const usePopoverContent = (props) => {
5
+ const context = useContext(PopoverContext);
6
+ const { style: userStyle, ...restProps } = props;
7
+ const positionStyle = context
8
+ ? {
9
+ position: 'fixed',
10
+ display: () => (context.open.val ? '' : 'none'),
11
+ top: () => {
12
+ if (!context.open.val)
13
+ return '0';
14
+ const trigger = document.getElementById(context.triggerId);
15
+ if (!trigger)
16
+ return '0';
17
+ return `${trigger.getBoundingClientRect().bottom + 8}px`;
18
+ },
19
+ left: () => {
20
+ if (!context.open.val)
21
+ return '0';
22
+ const trigger = document.getElementById(context.triggerId);
23
+ if (!trigger)
24
+ return '0';
25
+ return `${trigger.getBoundingClientRect().left}px`;
26
+ },
27
+ }
28
+ : { position: 'fixed', display: 'none' };
29
+ return {
30
+ components: { root: 'div' },
31
+ root: slot.always({
32
+ ...getIntrinsicElementProps('div', {
33
+ ...restProps,
34
+ ...(context ? { id: context.contentId } : {}),
35
+ }),
36
+ style: { ...userStyle, ...positionStyle },
37
+ }, { elementType: 'div' }),
38
+ };
39
+ };
@@ -0,0 +1,5 @@
1
+ import type { SlotClassNames } from '../../utilities';
2
+ import type { PopoverContentSlots, PopoverContentState } from './Popover.types';
3
+ export declare const popoverContentClassNames: SlotClassNames<PopoverContentSlots>;
4
+ export declare const usePopoverContentStyles: (state: PopoverContentState) => PopoverContentState;
5
+ //# sourceMappingURL=usePopoverContentStyles.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePopoverContentStyles.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Popover/usePopoverContentStyles.styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGhF,eAAO,MAAM,wBAAwB,EAAE,cAAc,CAAC,mBAAmB,CAExE,CAAC;AAYF,eAAO,MAAM,uBAAuB,GAAI,OAAO,mBAAmB,KAAG,mBAUpE,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { makeResetStyles, mergeClasses } from 'calame';
2
+ import { tokens } from '@prizmui/tokens';
3
+ export const popoverContentClassNames = {
4
+ root: 'c-popover-content',
5
+ };
6
+ const useRootBaseClassName = makeResetStyles({
7
+ backgroundColor: tokens.colorNeutralBackground1,
8
+ border: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStroke2}`,
9
+ borderRadius: tokens.borderRadiusMedium,
10
+ boxShadow: '0 8px 16px rgba(0,0,0,.14), 0 0 2px rgba(0,0,0,.12)',
11
+ padding: `${tokens.spacingVerticalM} ${tokens.spacingHorizontalM}`,
12
+ minWidth: '160px',
13
+ zIndex: '1000',
14
+ });
15
+ export const usePopoverContentStyles = (state) => {
16
+ const rootBaseClassName = useRootBaseClassName();
17
+ state.root.className = mergeClasses(popoverContentClassNames.root, rootBaseClassName, state.root.className);
18
+ return state;
19
+ };
@@ -0,0 +1,5 @@
1
+ import type { SlotClassNames } from '../../utilities';
2
+ import type { PopoverSurfaceSlots } from './Popover.types';
3
+ export declare const popoverSurfaceClassNames: SlotClassNames<PopoverSurfaceSlots>;
4
+ export declare const usePopoverSurfaceBaseClass: (options?: import("calame").MakeResetStylesOptions) => string;
5
+ //# sourceMappingURL=usePopoverSurfaceStyles.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePopoverSurfaceStyles.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Popover/usePopoverSurfaceStyles.styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAG3D,eAAO,MAAM,wBAAwB,EAAE,cAAc,CAAC,mBAAmB,CAExE,CAAC;AAEF,eAAO,MAAM,0BAA0B,+DAQrC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { makeResetStyles } from 'calame';
2
+ import { tokens } from '@prizmui/tokens';
3
+ export const popoverSurfaceClassNames = {
4
+ root: 'c-popover-surface',
5
+ };
6
+ export const usePopoverSurfaceBaseClass = makeResetStyles({
7
+ backgroundColor: tokens.colorNeutralBackground1,
8
+ border: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStroke2}`,
9
+ borderRadius: tokens.borderRadiusMedium,
10
+ boxShadow: '0 8px 16px rgba(0,0,0,.14), 0 0 2px rgba(0,0,0,.12)',
11
+ padding: `${tokens.spacingVerticalM} ${tokens.spacingHorizontalM}`,
12
+ minWidth: '160px',
13
+ pointerEvents: 'auto',
14
+ });
@@ -0,0 +1,3 @@
1
+ import type { PopoverTriggerProps, PopoverTriggerState } from './Popover.types';
2
+ export declare const usePopoverTrigger: (props: PopoverTriggerProps) => PopoverTriggerState;
3
+ //# sourceMappingURL=usePopoverTrigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePopoverTrigger.d.ts","sourceRoot":"","sources":["../../../src/components/Popover/usePopoverTrigger.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGhF,eAAO,MAAM,iBAAiB,GAAI,OAAO,mBAAmB,KAAG,mBA+B9D,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { useContext } from 'jsx-framework-test-pb';
2
+ import { useARIAButtonProps, slot } from '../../utilities';
3
+ import { PopoverContext } from './Popover.context';
4
+ export const usePopoverTrigger = (props) => {
5
+ const context = useContext(PopoverContext);
6
+ const disabled = props.disabled ?? false;
7
+ const { onClick: userOnClick, ...restProps } = props;
8
+ const contextProps = context
9
+ ? {
10
+ id: context.triggerId,
11
+ 'aria-expanded': () => context.open.val,
12
+ 'aria-controls': context.contentId,
13
+ 'aria-haspopup': 'true',
14
+ onClick: (e) => {
15
+ if (!disabled)
16
+ context.open.val = !context.open.val;
17
+ if (typeof userOnClick === 'function')
18
+ userOnClick(e);
19
+ },
20
+ }
21
+ : {};
22
+ return {
23
+ disabled,
24
+ components: { root: 'button' },
25
+ root: slot.always(useARIAButtonProps('button', {
26
+ ...restProps,
27
+ ...contextProps,
28
+ disabled,
29
+ }), { elementType: 'button' }),
30
+ };
31
+ };
@@ -0,0 +1,3 @@
1
+ import type { Theme } from '@prizmui/tokens';
2
+ export declare const ThemeContext: import("jsx-framework-test-pb").Context<Theme | null>;
3
+ //# sourceMappingURL=ThemeContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeContext.d.ts","sourceRoot":"","sources":["../../../src/components/PrizmProvider/ThemeContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C,eAAO,MAAM,YAAY,uDAAoC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { createContext } from 'jsx-framework-test-pb';
2
+ export const ThemeContext = createContext(null);
@@ -1,4 +1,5 @@
1
1
  export { PrizmProvider, } from './PrizmProvider';
2
2
  export { prizmProviderClassNames } from './useProviderStyles.styles';
3
3
  export type { PrizmProviderProps, PrizmProviderSlots, PrizmProviderState } from './PrizmProvider.types';
4
+ export { ThemeContext } from './ThemeContext';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PrizmProvider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,GAAG,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PrizmProvider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,GAAG,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACxG,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export { PrizmProvider, } from './PrizmProvider';
2
2
  export { prizmProviderClassNames } from './useProviderStyles.styles';
3
+ export { ThemeContext } from './ThemeContext';
@@ -1 +1 @@
1
- {"version":3,"file":"renderProvider.d.ts","sourceRoot":"","sources":["../../../src/components/PrizmProvider/renderProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAsB,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEpF,eAAO,MAAM,cAAc,GAAI,OAAO,kBAAkB,KAAG,UAQ1D,CAAC"}
1
+ {"version":3,"file":"renderProvider.d.ts","sourceRoot":"","sources":["../../../src/components/PrizmProvider/renderProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAsB,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAGpF,eAAO,MAAM,cAAc,GAAI,OAAO,kBAAkB,KAAG,UAU1D,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx } from "jsx-framework-test-pb/jsx-runtime";
2
2
  import { assertSlots } from '../../utilities';
3
+ import { ThemeContext } from './ThemeContext';
3
4
  export const renderProvider = (state) => {
4
5
  assertSlots(state);
5
- return (_jsx(state.root, { children: state.root.children }));
6
+ return (_jsx(ThemeContext.Provider, { value: state.theme, children: _jsx(state.root, { children: state.root.children }) }));
6
7
  };
package/dist/index.d.ts CHANGED
@@ -4,4 +4,7 @@ export { Button, buttonClassNames } from './components/Button';
4
4
  export type { ButtonProps, ButtonSlots, ButtonState } from './components/Button';
5
5
  export { Text, textClassNames } from './components/Text';
6
6
  export type { TextProps, TextSlots, TextState } from './components/Text';
7
+ export { Popover, PopoverTrigger, PopoverSurface, popoverSurfaceClassNames } from './components/Popover';
8
+ export type { PopoverProps, PopoverTriggerProps, PopoverSurfaceProps, PopoverSurfaceSlots, PopoverSurfaceState } from './components/Popover';
9
+ export { ThemeContext } from './components/PrizmProvider';
7
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACpF,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAE7G,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEjF,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACzD,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACpF,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAE7G,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEjF,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACzD,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACzG,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE7I,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,5 @@
1
1
  export { PrizmProvider, prizmProviderClassNames } from './components/PrizmProvider';
2
2
  export { Button, buttonClassNames } from './components/Button';
3
3
  export { Text, textClassNames } from './components/Text';
4
+ export { Popover, PopoverTrigger, PopoverSurface, popoverSurfaceClassNames } from './components/Popover';
5
+ export { ThemeContext } from './components/PrizmProvider';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prizmui/components",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -14,14 +14,14 @@
14
14
  "dist"
15
15
  ],
16
16
  "dependencies": {
17
- "calame": "0.0.6",
18
- "@prizmui/tokens": "0.0.4"
17
+ "@prizmui/tokens": "0.0.5",
18
+ "calame": "0.0.6"
19
19
  },
20
20
  "peerDependencies": {
21
21
  "jsx-framework-test-pb": "*"
22
22
  },
23
23
  "devDependencies": {
24
- "jsx-framework-test-pb": "latest",
24
+ "jsx-framework-test-pb": "0.4.1",
25
25
  "typescript": "^5.9.3"
26
26
  },
27
27
  "scripts": {