@apostel/bedrock 0.1.1 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/README.md +25 -20
  2. package/dist/accordion/controlled-root.d.ts +5 -2
  3. package/dist/accordion/controlled-root.d.ts.map +1 -1
  4. package/dist/accordion/controlled-root.js +5 -2
  5. package/dist/accordion/controlled-root.js.map +1 -1
  6. package/dist/capabilities.d.ts +15 -4
  7. package/dist/capabilities.d.ts.map +1 -1
  8. package/dist/capabilities.js +17 -4
  9. package/dist/capabilities.js.map +1 -1
  10. package/dist/collapsible/controlled-root.d.ts +10 -7
  11. package/dist/collapsible/controlled-root.d.ts.map +1 -1
  12. package/dist/collapsible/controlled-root.js +10 -7
  13. package/dist/collapsible/controlled-root.js.map +1 -1
  14. package/dist/collapsible/root.d.ts +2 -2
  15. package/dist/collapsible/root.js +2 -2
  16. package/dist/collapsible/shared.d.ts +3 -2
  17. package/dist/collapsible/shared.d.ts.map +1 -1
  18. package/dist/collapsible/shared.js +3 -2
  19. package/dist/collapsible/shared.js.map +1 -1
  20. package/dist/create-controlled-root.d.ts +12 -4
  21. package/dist/create-controlled-root.d.ts.map +1 -1
  22. package/dist/create-controlled-root.js +15 -5
  23. package/dist/create-controlled-root.js.map +1 -1
  24. package/dist/hover-card/controlled-root.d.ts.map +1 -1
  25. package/dist/hover-card/controlled-root.js +2 -0
  26. package/dist/hover-card/controlled-root.js.map +1 -1
  27. package/dist/hover-card/root.d.ts.map +1 -1
  28. package/dist/hover-card/root.js +2 -0
  29. package/dist/hover-card/root.js.map +1 -1
  30. package/dist/interest.d.ts +18 -9
  31. package/dist/interest.d.ts.map +1 -1
  32. package/dist/interest.js +242 -32
  33. package/dist/interest.js.map +1 -1
  34. package/dist/popover/controlled-root.d.ts +1 -1
  35. package/dist/popover/controlled-root.d.ts.map +1 -1
  36. package/dist/popover/controlled-root.js +3 -2
  37. package/dist/popover/controlled-root.js.map +1 -1
  38. package/dist/popover/root.d.ts +1 -1
  39. package/dist/popover/root.d.ts.map +1 -1
  40. package/dist/popover/root.js +3 -2
  41. package/dist/popover/root.js.map +1 -1
  42. package/dist/popover/shared.d.ts +12 -0
  43. package/dist/popover/shared.d.ts.map +1 -1
  44. package/dist/popover/shared.js +16 -0
  45. package/dist/popover/shared.js.map +1 -1
  46. package/dist/tooltip/controlled-root.d.ts.map +1 -1
  47. package/dist/tooltip/controlled-root.js +2 -0
  48. package/dist/tooltip/controlled-root.js.map +1 -1
  49. package/dist/tooltip/parts.d.ts +8 -1
  50. package/dist/tooltip/parts.d.ts.map +1 -1
  51. package/dist/tooltip/parts.js +35 -1
  52. package/dist/tooltip/parts.js.map +1 -1
  53. package/dist/tooltip/root.d.ts.map +1 -1
  54. package/dist/tooltip/root.js +2 -0
  55. package/dist/tooltip/root.js.map +1 -1
  56. package/dist/tooltip/shared.d.ts +2 -1
  57. package/dist/tooltip/shared.d.ts.map +1 -1
  58. package/dist/tooltip/shared.js.map +1 -1
  59. package/dist/tooltip/use-controlled-interest-root.d.ts +2 -0
  60. package/dist/tooltip/use-controlled-interest-root.d.ts.map +1 -1
  61. package/dist/tooltip/use-controlled-interest-root.js +4 -2
  62. package/dist/tooltip/use-controlled-interest-root.js.map +1 -1
  63. package/dist/tooltip/use-interest-root.d.ts +2 -0
  64. package/dist/tooltip/use-interest-root.d.ts.map +1 -1
  65. package/dist/tooltip/use-interest-root.js +5 -2
  66. package/dist/tooltip/use-interest-root.js.map +1 -1
  67. package/package.json +15 -12
  68. package/skills/migrate-to-bedrock/SKILL.md +11 -3
@@ -1 +1 @@
1
- {"version":3,"file":"parts.js","sourceRoot":"","sources":["../../src/tooltip/parts.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAyB,MAAM,WAAW,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAE9B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAI5C;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,EAAuB;IACnF,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAA;IACpF,MAAM,IAAI,GAAgB,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAA;IAEnD,OAAO,CACL,KAAC,IAAI,OACC,KAAK,KACL,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,sBAErB,EAAE,EACpB,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,EAAkB,EACvD,GAAG,EAAE,eAAe,CAAc,GAAG,EAAE,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAC/D,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,iBAAiB,CAAC,CACrD,kCAC4B,EAAE,GAC/B,CACH,CAAA;AACH,CAAC;AASD,MAAM,UAAU,cAAc,CAAC,EAC7B,OAAO,EACP,QAAQ,EACR,IAAI,GAAG,KAAK,EACZ,KAAK,GAAG,QAAQ,EAChB,UAAU,GAAG,CAAC,EACd,eAAe,GAAG,IAAI,EACtB,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACY;IACpB,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAA;IAC9F,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAA;IAClC,MAAM,IAAI,GAAgB,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;IAEhD,OAAO,CACL,KAAC,IAAI,OACC,KAAK,EACT,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,IAAI,EACb,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,eAClF,IAAI,gBACH,KAAK,EACjB,GAAG,EAAE,eAAe,CAAc,GAAG,EAAE,eAAe,CAAC,0BAClC,EAAE,YAEtB,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAC/B,CACR,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"parts.js","sourceRoot":"","sources":["../../src/tooltip/parts.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../src/tooltip/root.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;CACnC;AAED,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,aAAmB,EACnB,UAAgB,EAChB,YAAY,GACb,EAAE,gBAAgB,+BAalB"}
1
+ {"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../src/tooltip/root.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;CACnC;AAED,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,aAAmB,EACnB,UAAgB,EAChB,YAAY,GACb,EAAE,gBAAgB,+BAelB"}
@@ -7,6 +7,8 @@ export function TooltipRoot({ children, delayDuration = 700, closeDelay = 150, o
7
7
  hideDelay: closeDelay,
8
8
  // A tooltip is a label, not somewhere to move the pointer.
9
9
  hoverableContent: false,
10
+ // A tooltip is a peek: it ends when the finger does.
11
+ pressHolds: false,
10
12
  // `hint` layers above an open menu rather than closing it.
11
13
  kind: 'hint',
12
14
  role: 'tooltip',
@@ -1 +1 @@
1
- {"version":3,"file":"root.js","sourceRoot":"","sources":["../../src/tooltip/root.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAarD,MAAM,UAAU,WAAW,CAAC,EAC1B,QAAQ,EACR,aAAa,GAAG,GAAG,EACnB,UAAU,GAAG,GAAG,EAChB,YAAY,GACK;IACjB,MAAM,OAAO,GAAG,eAAe,CAAC;QAC9B,SAAS,EAAE,aAAa;QACxB,SAAS,EAAE,UAAU;QACrB,2DAA2D;QAC3D,gBAAgB,EAAE,KAAK;QACvB,2DAA2D;QAC3D,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;QACf,YAAY;KACb,CAAC,CAAA;IAEF,OAAO,KAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO,YAAG,QAAQ,GAA2B,CAAA;AACtF,CAAC"}
1
+ {"version":3,"file":"root.js","sourceRoot":"","sources":["../../src/tooltip/root.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAarD,MAAM,UAAU,WAAW,CAAC,EAC1B,QAAQ,EACR,aAAa,GAAG,GAAG,EACnB,UAAU,GAAG,GAAG,EAChB,YAAY,GACK;IACjB,MAAM,OAAO,GAAG,eAAe,CAAC;QAC9B,SAAS,EAAE,aAAa;QACxB,SAAS,EAAE,UAAU;QACrB,2DAA2D;QAC3D,gBAAgB,EAAE,KAAK;QACvB,qDAAqD;QACrD,UAAU,EAAE,KAAK;QACjB,2DAA2D;QAC3D,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;QACf,YAAY;KACb,CAAC,CAAA;IAEF,OAAO,KAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO,YAAG,QAAQ,GAA2B,CAAA;AACtF,CAAC"}
@@ -3,7 +3,8 @@ export interface TooltipContextValue extends RootContextValue {
3
3
  anchor: string;
4
4
  /** Set when the platform can do intent itself; drives the attribute path. */
5
5
  native: boolean;
6
- registerTrigger(node: HTMLElement | null): void;
6
+ /** `activates` is what only React can see: a handler on the trigger. */
7
+ registerTrigger(node: HTMLElement | null, activates?: boolean): void;
7
8
  /** Tooltips are labels; hover cards are regions with content. */
8
9
  role: 'tooltip' | undefined;
9
10
  kind: 'hint' | 'auto';
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/tooltip/shared.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,MAAM,EAAE,MAAM,CAAA;IACd,6EAA6E;IAC7E,MAAM,EAAE,OAAO,CAAA;IACf,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAAA;IAC/C,iEAAiE;IACjE,IAAI,EAAE,SAAS,GAAG,SAAS,CAAA;IAC3B,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CACtB;AAED,eAAO,MAAM,cAAc,qDAAkD,CAAA;AAE7E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAKnE"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/tooltip/shared.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEhD,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,MAAM,EAAE,MAAM,CAAA;IACd,6EAA6E;IAC7E,MAAM,EAAE,OAAO,CAAA;IACf,wEAAwE;IACxE,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IACpE,iEAAiE;IACjE,IAAI,EAAE,SAAS,GAAG,SAAS,CAAA;IAC3B,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CACtB;AAED,eAAO,MAAM,cAAc,qDAAkD,CAAA;AAE7E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAKnE"}
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/tooltip/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAajD,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAA6B,IAAI,CAAC,CAAA;AAE7E,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IAC1C,IAAI,CAAC,OAAO;QACV,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,mDAAmD,CAAC,CAAA;IACvF,OAAO,OAAO,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/tooltip/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAcjD,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAA6B,IAAI,CAAC,CAAA;AAE7E,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IAC1C,IAAI,CAAC,OAAO;QACV,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,mDAAmD,CAAC,CAAA;IACvF,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -4,6 +4,8 @@ export interface ControlledInterestOptions extends ControlledRootProps {
4
4
  showDelay: number;
5
5
  hideDelay: number;
6
6
  hoverableContent: boolean;
7
+ /** Whether a press that opened it survives the finger coming back up. */
8
+ pressHolds: boolean;
7
9
  kind: 'hint' | 'auto';
8
10
  role: 'tooltip' | undefined;
9
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-controlled-interest-root.d.ts","sourceRoot":"","sources":["../../src/tooltip/use-controlled-interest-root.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqB,KAAK,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAGvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAEnD,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB;IACpE,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,EAAE,OAAO,CAAA;IACzB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,IAAI,EAAE,SAAS,GAAG,SAAS,CAAA;CAC5B;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,yBAAyB,GAAG,mBAAmB,CAwBjG"}
1
+ {"version":3,"file":"use-controlled-interest-root.d.ts","sourceRoot":"","sources":["../../src/tooltip/use-controlled-interest-root.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqB,KAAK,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAGvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAEnD,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB;IACpE,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,EAAE,OAAO,CAAA;IACzB,yEAAyE;IACzE,UAAU,EAAE,OAAO,CAAA;IACnB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,IAAI,EAAE,SAAS,GAAG,SAAS,CAAA;CAC5B;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,yBAAyB,GAAG,mBAAmB,CA0BjG"}
@@ -3,7 +3,7 @@ import { anchorName } from '../anchor.js';
3
3
  import { useSupportsInterestInvokers } from '../capabilities.js';
4
4
  import { useControlledRoot } from '../create-controlled-root.js';
5
5
  import { useInterest } from '../interest.js';
6
- import { popoverAdapter } from '../popover/shared.js';
6
+ import { popoverAdapter, usePopoverKind } from '../popover/shared.js';
7
7
  /**
8
8
  * Controlled Tooltip and HoverCard. Only ever imported from `/controlled`, so
9
9
  * the reconciliation layer stays out of the default bundle — the graph lint
@@ -13,14 +13,16 @@ import { popoverAdapter } from '../popover/shared.js';
13
13
  * still decides whether it happens.
14
14
  */
15
15
  export function useControlledInterestRoot(options) {
16
- const { open, onOpenChange, showDelay, hideDelay, hoverableContent, kind, role } = options;
16
+ const { open, onOpenChange, showDelay, hideDelay, hoverableContent, pressHolds, role } = options;
17
17
  const context = useControlledRoot({ open, onOpenChange }, popoverAdapter);
18
18
  const anchor = useMemo(() => anchorName(context.id), [context.id]);
19
19
  const native = useSupportsInterestInvokers();
20
+ const kind = usePopoverKind(options.kind);
20
21
  const { registerTrigger, registerInterestContent } = useInterest({
21
22
  showDelay,
22
23
  hideDelay,
23
24
  hoverableContent,
25
+ pressHolds,
24
26
  });
25
27
  const registerContent = useCallback((node) => {
26
28
  context.registerContent(node);
@@ -1 +1 @@
1
- {"version":3,"file":"use-controlled-interest-root.js","sourceRoot":"","sources":["../../src/tooltip/use-controlled-interest-root.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAA4B,MAAM,2BAA2B,CAAA;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAWlD;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAkC;IAC1E,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IAC1F,MAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,cAAc,CAAC,CAAA;IACzE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;IAClE,MAAM,MAAM,GAAG,2BAA2B,EAAE,CAAA;IAE5C,MAAM,EAAE,eAAe,EAAE,uBAAuB,EAAE,GAAG,WAAW,CAAC;QAC/D,SAAS;QACT,SAAS;QACT,gBAAgB;KACjB,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,IAAwB,EAAE,EAAE;QAC3B,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QAC7B,uBAAuB,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC,EACD,CAAC,OAAO,EAAE,uBAAuB,CAAC,CACnC,CAAA;IAED,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,EACpF,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,CAAC,CACxE,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"use-controlled-interest-root.js","sourceRoot":"","sources":["../../src/tooltip/use-controlled-interest-root.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAA4B,MAAM,2BAA2B,CAAA;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAalE;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAkC;IAC1E,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IAChG,MAAM,OAAO,GAAG,iBAAiB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,cAAc,CAAC,CAAA;IACzE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;IAClE,MAAM,MAAM,GAAG,2BAA2B,EAAE,CAAA;IAC5C,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAEzC,MAAM,EAAE,eAAe,EAAE,uBAAuB,EAAE,GAAG,WAAW,CAAC;QAC/D,SAAS;QACT,SAAS;QACT,gBAAgB;QAChB,UAAU;KACX,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,IAAwB,EAAE,EAAE;QAC3B,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QAC7B,uBAAuB,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC,EACD,CAAC,OAAO,EAAE,uBAAuB,CAAC,CACnC,CAAA;IAED,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,EACpF,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,CAAC,CACxE,CAAA;AACH,CAAC"}
@@ -3,6 +3,8 @@ export interface InterestRootOptions {
3
3
  showDelay: number;
4
4
  hideDelay: number;
5
5
  hoverableContent: boolean;
6
+ /** Whether a press that opened it survives the finger coming back up. */
7
+ pressHolds: boolean;
6
8
  kind: 'hint' | 'auto';
7
9
  role: 'tooltip' | undefined;
8
10
  onOpenChange?: ((open: boolean) => void) | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"use-interest-root.d.ts","sourceRoot":"","sources":["../../src/tooltip/use-interest-root.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAEnD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,EAAE,OAAO,CAAA;IACzB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,IAAI,EAAE,SAAS,GAAG,SAAS,CAAA;IAC3B,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;CACrD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,mBAAmB,CAsCjF"}
1
+ {"version":3,"file":"use-interest-root.d.ts","sourceRoot":"","sources":["../../src/tooltip/use-interest-root.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAEnD,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,EAAE,OAAO,CAAA;IACzB,yEAAyE;IACzE,UAAU,EAAE,OAAO,CAAA;IACnB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,IAAI,EAAE,SAAS,GAAG,SAAS,CAAA;IAC3B,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;CACrD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,mBAAmB,CAwCjF"}
@@ -3,6 +3,7 @@ import { anchorName } from '../anchor.js';
3
3
  import { useSupportsInterestInvokers } from '../capabilities.js';
4
4
  import { useInterest } from '../interest.js';
5
5
  import { useOpenState } from '../open-state.js';
6
+ import { usePopoverKind } from '../popover/shared.js';
6
7
  /**
7
8
  * Everything Tooltip and HoverCard share, which is almost all of it: the two
8
9
  * differ in their delays, in whether the content is hoverable, and in whether
@@ -12,6 +13,7 @@ export function useInterestRoot(options) {
12
13
  const id = useId();
13
14
  const anchor = useMemo(() => anchorName(id), [id]);
14
15
  const native = useSupportsInterestInvokers();
16
+ const kind = usePopoverKind(options.kind);
15
17
  const changeRef = useRef(options.onOpenChange);
16
18
  changeRef.current = options.onOpenChange;
17
19
  const report = useCallback((next) => changeRef.current?.(next), []);
@@ -20,6 +22,7 @@ export function useInterestRoot(options) {
20
22
  showDelay: options.showDelay,
21
23
  hideDelay: options.hideDelay,
22
24
  hoverableContent: options.hoverableContent,
25
+ pressHolds: options.pressHolds,
23
26
  });
24
27
  const registerContent = useCallback((node) => {
25
28
  observe(node);
@@ -30,10 +33,10 @@ export function useInterestRoot(options) {
30
33
  open,
31
34
  anchor,
32
35
  native,
33
- kind: options.kind,
36
+ kind,
34
37
  role: options.role,
35
38
  registerContent,
36
39
  registerTrigger,
37
- }), [id, open, anchor, native, options.kind, options.role, registerContent, registerTrigger]);
40
+ }), [id, open, anchor, native, kind, options.role, registerContent, registerTrigger]);
38
41
  }
39
42
  //# sourceMappingURL=use-interest-root.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-interest-root.js","sourceRoot":"","sources":["../../src/tooltip/use-interest-root.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAY5C;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,OAA4B;IAC1D,MAAM,EAAE,GAAG,KAAK,EAAE,CAAA;IAClB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAClD,MAAM,MAAM,GAAG,2BAA2B,EAAE,CAAA;IAE5C,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IAC9C,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC,YAAY,CAAA;IAExC,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,IAAa,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IAC5E,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAE9C,MAAM,EAAE,eAAe,EAAE,uBAAuB,EAAE,GAAG,WAAW,CAAC;QAC/D,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;KAC3C,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,IAAwB,EAAE,EAAE;QAC3B,OAAO,CAAC,IAAI,CAAC,CAAA;QACb,uBAAuB,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC,EACD,CAAC,OAAO,EAAE,uBAAuB,CAAC,CACnC,CAAA;IAED,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC;QACL,EAAE;QACF,IAAI;QACJ,MAAM;QACN,MAAM;QACN,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,eAAe;QACf,eAAe;KAChB,CAAC,EACF,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,eAAe,EAAE,eAAe,CAAC,CACzF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"use-interest-root.js","sourceRoot":"","sources":["../../src/tooltip/use-interest-root.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAclD;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,OAA4B;IAC1D,MAAM,EAAE,GAAG,KAAK,EAAE,CAAA;IAClB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAClD,MAAM,MAAM,GAAG,2BAA2B,EAAE,CAAA;IAC5C,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAEzC,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IAC9C,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC,YAAY,CAAA;IAExC,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,IAAa,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IAC5E,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAE9C,MAAM,EAAE,eAAe,EAAE,uBAAuB,EAAE,GAAG,WAAW,CAAC;QAC/D,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,IAAwB,EAAE,EAAE;QAC3B,OAAO,CAAC,IAAI,CAAC,CAAA;QACb,uBAAuB,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC,EACD,CAAC,OAAO,EAAE,uBAAuB,CAAC,CACnC,CAAA;IAED,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,CAAC;QACL,EAAE;QACF,IAAI;QACJ,MAAM;QACN,MAAM;QACN,IAAI;QACJ,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,eAAe;QACf,eAAe;KAChB,CAAC,EACF,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,eAAe,EAAE,eAAe,CAAC,CACjF,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apostel/bedrock",
3
- "version": "0.1.1",
3
+ "version": "0.2.1",
4
4
  "description": "Headless React primitives built on native platform features",
5
5
  "keywords": [
6
6
  "accessibility",
@@ -43,26 +43,28 @@
43
43
  },
44
44
  "scripts": {
45
45
  "build": "tsc -p tsconfig.build.json && node scripts/postbuild.mjs",
46
- "typecheck": "tsc --noEmit -p tsconfig.json",
47
- "lint": "oxlint",
48
- "lint:graph": "depcruise src --config .dependency-cruiser.cjs",
46
+ "changeset": "changeset",
47
+ "compat:build": "node scripts/build-compat.mjs",
48
+ "demos:build": "vite build --config vite.demos.config.ts",
49
+ "docs:baseline": "node scripts/build-baseline.mjs",
50
+ "docs:build": "node scripts/build-docs.mjs && npm run demos:build",
49
51
  "format": "oxfmt",
50
52
  "format:check": "oxfmt --check",
53
+ "lint": "oxlint",
54
+ "lint:graph": "depcruise src --config .dependency-cruiser.cjs",
55
+ "prepublishOnly": "npm run verify",
51
56
  "registry:build": "node scripts/build-registry.mjs",
57
+ "release": "changeset publish",
52
58
  "test": "playwright test",
53
59
  "test:install": "playwright install chromium",
60
+ "typecheck": "tsc --noEmit -p tsconfig.json",
54
61
  "verify": "npm run format:check && npm run lint && npm run typecheck && npm run lint:graph && npm run build && npm run test",
55
- "prepublishOnly": "npm run verify",
56
- "docs:build": "node scripts/build-docs.mjs && npm run demos:build",
57
- "changeset": "changeset",
58
- "version": "changeset version",
59
- "release": "changeset publish",
60
- "demos:build": "vite build --config vite.demos.config.ts",
61
- "docs:baseline": "node scripts/build-baseline.mjs"
62
+ "version": "changeset version"
62
63
  },
63
64
  "devDependencies": {
64
65
  "@axe-core/playwright": "^4.12.1",
65
66
  "@changesets/cli": "^3.0.1",
67
+ "@mdn/browser-compat-data": "^8.0.13",
66
68
  "@playwright/test": "^1.62.1",
67
69
  "@tailwindcss/vite": "^4.3.3",
68
70
  "@types/react": "^19.0.0",
@@ -77,7 +79,8 @@
77
79
  "tailwind-merge": "^3.6.0",
78
80
  "tailwindcss": "^4.3.3",
79
81
  "typescript": "^5.6.0",
80
- "vite": "^8.2.0"
82
+ "vite": "^8.2.0",
83
+ "web-features": "^3.36.0"
81
84
  },
82
85
  "peerDependencies": {
83
86
  "react": ">=19",
@@ -118,6 +118,12 @@ those, move to the controlled import:
118
118
  Everything else keeps the smaller bundle. A handler that just resets a form or
119
119
  fires analytics is served by the default root.
120
120
 
121
+ The controlled import buys a veto only where the element gives the platform a
122
+ cancelable hook. Collapsible and Accordion are `<details>`, which gives none, so
123
+ a guard there has to be `preventDefault()` on the Trigger's click instead — the
124
+ toggle is that click's default action. Flag it rather than swapping the import
125
+ and assuming it holds.
126
+
121
127
  ### Closed content is unmounted
122
128
 
123
129
  This is usually a *win* — a form inside a dialog resets itself, and any
@@ -132,9 +138,11 @@ dialog.
132
138
 
133
139
  Only what actually differs. Everything not listed is a straight swap.
134
140
 
135
- - **Accordion** — `type="single"` is `<details name>`, so an open item can
136
- always be closed; Radix's `collapsible={false}` has no equivalent. `Header`
137
- renders the `<summary>` and `Trigger` sits inside it.
141
+ - **Accordion, Collapsible** — `<details>`. For Accordion, `type="single"` is
142
+ `<details name>`, so an open item can always be closed; Radix's
143
+ `collapsible={false}` has no equivalent, and `Header` renders the `<summary>`
144
+ with `Trigger` inside it. Neither can refuse a toggle, under either import:
145
+ see above.
138
146
  - **Checkbox, Switch, RadioGroup, Slider, Progress** — real elements, so
139
147
  `Indicator`, `Thumb`, `Track` and `Range` render nothing. Their styles move to
140
148
  `::before`, `::-webkit-slider-thumb`, `::-webkit-progress-value`. Watch for