@sprucelabs/spruce-heartwood-utils 38.17.7 → 38.17.8

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/README.md CHANGED
@@ -59,7 +59,6 @@ import {
59
59
  AutoLogoutPlugin,
60
60
  loadActiveThemeForOrg,
61
61
  Sizer,
62
- SimpleEmitter,
63
62
  } from '@sprucelabs/spruce-heartwood-utils/web'
64
63
  ```
65
64
 
@@ -675,7 +674,6 @@ import {
675
674
  // Utilities
676
675
  sizeUtil, Settings,
677
676
  // Emitter — pass to Sizer and DelayedPlacer to coordinate layout events
678
- SimpleEmitter,
679
677
  // Types
680
678
  AnimationEmitter,
681
679
  SizerProps,
@@ -773,15 +771,15 @@ Pass the **same emitter instance** to `Sizer` and `DelayedPlacer` when they are
773
771
 
774
772
  ### AnimationEmitter
775
773
 
776
- The interface `Sizer` and `DelayedPlacer` use to communicate layout-change events. Pass an instance as the `emitter` prop to coordinate components. The package exports `SimpleEmitter` a lightweight in-memory implementation you can use directly:
774
+ The interface `Sizer` and `DelayedPlacer` use to communicate layout-change events. Pass an instance as the `emitter` prop to coordinate components. The package exports `SkillViewEmitter` for this:
777
775
 
778
776
  ```ts
779
- import { SimpleEmitter } from '@sprucelabs/spruce-heartwood-utils/web'
777
+ import { SkillViewEmitter } from '@sprucelabs/spruce-heartwood-utils/web'
780
778
 
781
- const emitter = new SimpleEmitter()
779
+ const emitter = SkillViewEmitter.getInstance()
782
780
  ```
783
781
 
784
- `SimpleEmitter` implements all three methods (`on`, `off`, `emit`) with a plain listener map. Use it for standalone components, isolated tests, or any context where a full Heartwood emitter is not available.
782
+ `SkillViewEmitter` implements all three methods (`on`, `off`, `emit`) needed by `AnimationEmitter`.
785
783
 
786
784
  The `AnimationEmitter` interface, for reference:
787
785
 
@@ -804,9 +802,9 @@ interface AnimationEmitter {
804
802
  2. **Create an emitter** — one per component tree, stable across renders:
805
803
 
806
804
  ```ts
807
- import { SimpleEmitter } from '@sprucelabs/spruce-heartwood-utils/web'
805
+ import { SkillViewEmitter } from '@sprucelabs/spruce-heartwood-utils/web'
808
806
 
809
- const emitter = useMemo(() => new SimpleEmitter(), [])
807
+ const emitter = useMemo(() => SkillViewEmitter.getInstance(), [])
810
808
  ```
811
809
 
812
810
  3. **Wire to components and emit events** — pass the emitter to `Sizer` and/or `DelayedPlacer`, then signal layout changes:
@@ -1074,9 +1072,9 @@ Wraps children in a div whose `height` is set via inline style to match the meas
1074
1072
  2. **Wrap your content** — `shouldHideOverflow` clips children during the height transition:
1075
1073
 
1076
1074
  ```tsx
1077
- import { Sizer, SimpleEmitter } from '@sprucelabs/spruce-heartwood-utils/web'
1075
+ import { Sizer } from '@sprucelabs/spruce-heartwood-utils/web'
1078
1076
 
1079
- const emitter = useMemo(() => new SimpleEmitter(), [])
1077
+ const emitter = useMemo(() => SkillViewEmitter.getInstance(), [])
1080
1078
 
1081
1079
  <Sizer emitter={emitter} shouldHideOverflow>
1082
1080
  <YourContent />
@@ -1142,7 +1140,7 @@ sizer.current?.hideOverflow(): void // re-apply overflow: hidden
1142
1140
  #### Usage
1143
1141
 
1144
1142
  ```tsx
1145
- import { Sizer, SimpleEmitter } from '@sprucelabs/spruce-heartwood-utils/web'
1143
+ import { Sizer } from '@sprucelabs/spruce-heartwood-utils/web'
1146
1144
 
1147
1145
  // Simplest — just clip overflow during height transition:
1148
1146
  <Sizer shouldHideOverflow>
@@ -1155,7 +1153,7 @@ import { Sizer, SimpleEmitter } from '@sprucelabs/spruce-heartwood-utils/web'
1155
1153
  </Sizer>
1156
1154
 
1157
1155
  // Manually trigger resize when content changes outside React state:
1158
- const emitter = useMemo(() => new SimpleEmitter(), [])
1156
+ const emitter = useMemo(() => SkillViewEmitter.getInstance(), [])
1159
1157
  const sizer = useRef<React.ElementRef<typeof Sizer>>(null)
1160
1158
 
1161
1159
  <Sizer shouldHideOverflow ref={sizer} emitter={emitter}>
@@ -1204,9 +1202,9 @@ When `isEnabled={false}`, children render inline with no wrapper.
1204
1202
  2. **Wrap your content** — `isEnabled`, `className`, and `isFocused` are all required:
1205
1203
 
1206
1204
  ```tsx
1207
- import { DelayedPlacer, SimpleEmitter } from '@sprucelabs/spruce-heartwood-utils/web'
1205
+ import { DelayedPlacer } from '@sprucelabs/spruce-heartwood-utils/web'
1208
1206
 
1209
- const emitter = useMemo(() => new SimpleEmitter(), [])
1207
+ const emitter = useMemo(() => SkillViewEmitter.getInstance(), [])
1210
1208
 
1211
1209
  <DelayedPlacer
1212
1210
  className="placer__card"
@@ -1274,11 +1272,11 @@ delayedPlacer.current?.placeRightAway(): void // re-measure and re-place immedi
1274
1272
 
1275
1273
  ```tsx
1276
1274
  import React, { useRef, useMemo } from 'react'
1277
- import { DelayedPlacer, SimpleEmitter } from '@sprucelabs/spruce-heartwood-utils/web'
1275
+ import { DelayedPlacer } from '@sprucelabs/spruce-heartwood-utils/web'
1278
1276
 
1279
1277
  function YourPanel({ isFocused }: { isFocused: () => boolean }) {
1280
1278
  const placerRef = useRef<React.ElementRef<typeof DelayedPlacer>>(null)
1281
- const emitter = useMemo(() => new SimpleEmitter(), [])
1279
+ const emitter = useMemo(() => SkillViewEmitter.getInstance(), [])
1282
1280
 
1283
1281
  return (
1284
1282
  <DelayedPlacer
@@ -1365,11 +1363,11 @@ A complete example showing all three systems working together in a card componen
1365
1363
  ```tsx
1366
1364
  import React, { useMemo } from 'react'
1367
1365
  import {
1368
- Sizer, DelayedPlacer, queueShow, Settings, SimpleEmitter,
1366
+ Sizer, DelayedPlacer, queueShow, Settings,
1369
1367
  } from '@sprucelabs/spruce-heartwood-utils/web'
1370
1368
 
1371
1369
  function YourCard({ isPlaced, isFocused }: { isPlaced: boolean; isFocused: () => boolean }) {
1372
- const emitter = useMemo(() => new SimpleEmitter(), [])
1370
+ const emitter = useMemo(() => SkillViewEmitter.getInstance(), [])
1373
1371
 
1374
1372
  return (
1375
1373
  <DelayedPlacer
@@ -6,4 +6,3 @@ export type { DelayedPlacerProps } from './DelayedPlacerExport';
6
6
  export { default as sizeUtil } from '../calendars/utils/size.utility';
7
7
  export { default as Settings } from '../Settings';
8
8
  export type { AnimationEmitter } from './types';
9
- export { default as SimpleEmitter } from './SimpleEmitter';
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.SimpleEmitter = exports.Settings = exports.sizeUtil = exports.DelayedPlacer = exports.Sizer = exports.stopQueue = exports.clearPendingShowAndQueueHide = exports.clearPendingHideAndQueueShow = exports.callbackImmediately = exports.queueCallback = exports.queueHide = exports.queueShow = exports.hideRightAway = exports.showRightAway = exports.useShowNow = exports.useQueueShow = void 0;
6
+ exports.Settings = exports.sizeUtil = exports.DelayedPlacer = exports.Sizer = exports.stopQueue = exports.clearPendingShowAndQueueHide = exports.clearPendingHideAndQueueShow = exports.callbackImmediately = exports.queueCallback = exports.queueHide = exports.queueShow = exports.hideRightAway = exports.showRightAway = exports.useShowNow = exports.useQueueShow = void 0;
7
7
  // Queue system — all functions and hooks
8
8
  var queueShow_1 = require("../../hooks/queueShow");
9
9
  Object.defineProperty(exports, "useQueueShow", { enumerable: true, get: function () { return queueShow_1.useQueueShow; } });
@@ -27,6 +27,4 @@ var size_utility_1 = require("../calendars/utils/size.utility");
27
27
  Object.defineProperty(exports, "sizeUtil", { enumerable: true, get: function () { return __importDefault(size_utility_1).default; } });
28
28
  var Settings_1 = require("../Settings");
29
29
  Object.defineProperty(exports, "Settings", { enumerable: true, get: function () { return __importDefault(Settings_1).default; } });
30
- var SimpleEmitter_1 = require("./SimpleEmitter");
31
- Object.defineProperty(exports, "SimpleEmitter", { enumerable: true, get: function () { return __importDefault(SimpleEmitter_1).default; } });
32
30
  //# sourceMappingURL=index.js.map
@@ -6,4 +6,3 @@ export type { DelayedPlacerProps } from './DelayedPlacerExport';
6
6
  export { default as sizeUtil } from '../calendars/utils/size.utility';
7
7
  export { default as Settings } from '../Settings';
8
8
  export type { AnimationEmitter } from './types';
9
- export { default as SimpleEmitter } from './SimpleEmitter';
@@ -6,4 +6,3 @@ export { default as DelayedPlacer } from './DelayedPlacerExport.js';
6
6
  // Utilities (useful for consumers who want to measure DOM nodes)
7
7
  export { default as sizeUtil } from '../calendars/utils/size.utility.js';
8
8
  export { default as Settings } from '../Settings.js';
9
- export { default as SimpleEmitter } from './SimpleEmitter.js';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sprucelabs/spruce-heartwood-utils",
3
3
  "description": "Heartwood Utilities",
4
- "version": "38.17.7",
4
+ "version": "38.17.8",
5
5
  "skill": {
6
6
  "namespace": "heartwood"
7
7
  },