@design-edito/tools 0.5.37 → 0.5.39

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 (115) hide show
  1. package/agnostic/@react/effects/index.d.ts +1 -0
  2. package/agnostic/@react/effects/index.js +1 -0
  3. package/agnostic/@react/effects/use-state-change-dispatch/index.d.ts +22 -0
  4. package/agnostic/@react/effects/use-state-change-dispatch/index.js +31 -0
  5. package/agnostic/@react/index.d.ts +1 -0
  6. package/agnostic/@react/index.js +1 -0
  7. package/agnostic/arrays/index.d.ts +3 -2
  8. package/agnostic/arrays/index.js +3 -2
  9. package/agnostic/arrays/integers-between/index.d.ts +8 -0
  10. package/agnostic/arrays/integers-between/index.js +11 -0
  11. package/agnostic/arrays/integers-between/index.test.d.ts +1 -0
  12. package/agnostic/arrays/integers-between/index.test.js +16 -0
  13. package/agnostic/colors/index.d.ts +2 -2
  14. package/agnostic/colors/index.js +2 -2
  15. package/agnostic/css/index.d.ts +2 -1
  16. package/agnostic/css/index.js +2 -1
  17. package/agnostic/css/merge-class-names/index.d.ts +8 -0
  18. package/agnostic/css/merge-class-names/index.js +23 -0
  19. package/agnostic/css/merge-class-names/index.test.d.ts +1 -0
  20. package/agnostic/css/merge-class-names/index.test.js +52 -0
  21. package/agnostic/html/hyper-json/smart-tags/coalesced/index.d.ts +11 -11
  22. package/agnostic/html/hyper-json/smart-tags/coalesced/index.js +11 -11
  23. package/agnostic/html/hyper-json/smart-tags/isolated/index.d.ts +2 -2
  24. package/agnostic/html/hyper-json/smart-tags/isolated/index.js +2 -2
  25. package/agnostic/html/index.d.ts +2 -2
  26. package/agnostic/html/index.js +2 -2
  27. package/agnostic/index.d.ts +2 -1
  28. package/agnostic/index.js +2 -1
  29. package/agnostic/misc/index.d.ts +1 -1
  30. package/agnostic/misc/index.js +1 -1
  31. package/agnostic/numbers/index.d.ts +2 -2
  32. package/agnostic/numbers/index.js +2 -2
  33. package/agnostic/objects/index.d.ts +2 -2
  34. package/agnostic/objects/index.js +2 -2
  35. package/agnostic/random/index.d.ts +1 -1
  36. package/agnostic/random/index.js +1 -1
  37. package/agnostic/time/dates/index.d.ts +1 -1
  38. package/agnostic/time/dates/index.js +1 -1
  39. package/components/BeforeAfter/index.controlled.js +1 -1
  40. package/components/BeforeAfter/index.js +2 -2
  41. package/components/Button/index.js +1 -1
  42. package/components/Clippable/index.js +1 -1
  43. package/components/Disclaimer/index.d.ts +2 -2
  44. package/components/Disclaimer/index.js +4 -3
  45. package/components/Drawer/index.js +4 -3
  46. package/components/EventListener/index.js +1 -1
  47. package/components/Gallery/index.js +5 -4
  48. package/components/Iframe/index.js +1 -1
  49. package/components/Image/index.d.ts +1 -1
  50. package/components/Image/index.js +3 -2
  51. package/components/Input/index.js +1 -1
  52. package/components/IntersectionObserver/index.js +1 -1
  53. package/components/JsonEditor/index.js +1 -1
  54. package/components/JsonEditor/types.d.ts +0 -6
  55. package/components/JsonEditor/utils.d.ts +0 -5
  56. package/components/JsonEditor/utils.js +0 -5
  57. package/components/Lightbox/index.d.ts +12 -12
  58. package/components/Lightbox/index.js +37 -35
  59. package/components/Lightbox/store.d.ts +9 -43
  60. package/components/Lightbox/store.js +51 -73
  61. package/components/Lightbox/types.d.ts +16 -0
  62. package/components/Lightbox/types.js +1 -0
  63. package/components/ListLoader/index.controlled.js +19 -13
  64. package/components/ListLoader/index.js +19 -3
  65. package/components/Overlayer/index.js +1 -1
  66. package/components/Paginator/index.js +4 -3
  67. package/components/ResizeObserver/index.js +1 -1
  68. package/components/Scrllgngn/index.d.ts +4 -4
  69. package/components/Scrllgngn/index.js +4 -3
  70. package/components/Scrllgngn/types.d.ts +55 -0
  71. package/components/Scrllgngn/types.js +24 -0
  72. package/components/Scrllgngn/utils.d.ts +2 -38
  73. package/components/ScrollListener/index.d.ts +1 -6
  74. package/components/ScrollListener/index.js +10 -9
  75. package/components/ScrollListener/types.d.ts +0 -3
  76. package/components/Select/index.js +1 -1
  77. package/components/Sequencer/index.d.ts +2 -9
  78. package/components/Sequencer/index.js +26 -128
  79. package/components/Sequencer/types.d.ts +30 -0
  80. package/components/Sequencer/types.js +30 -0
  81. package/components/Sequencer/utils.d.ts +4 -0
  82. package/components/Sequencer/utils.js +25 -0
  83. package/components/ShadowRoot/index.js +1 -1
  84. package/components/Subtitles/index.js +3 -5
  85. package/components/Subtitles/utils.d.ts +0 -51
  86. package/components/Subtitles/utils.js +0 -41
  87. package/components/Textarea/index.js +1 -1
  88. package/components/UIModule/index.d.ts +8 -6
  89. package/components/UIModule/index.js +11 -14
  90. package/components/Video/index.controlled.d.ts +1 -7
  91. package/components/Video/index.controlled.js +13 -12
  92. package/components/Video/index.d.ts +0 -8
  93. package/components/Video/index.js +11 -15
  94. package/components/Video/types.d.ts +33 -0
  95. package/components/Video/utils.d.ts +1 -67
  96. package/components/Video/utils.js +25 -44
  97. package/components/index.d.ts +3 -3
  98. package/components/index.js +3 -3
  99. package/components/utils/index.d.ts +1 -44
  100. package/components/utils/index.js +1 -83
  101. package/components/utils/viewport-behaviours/index.d.ts +8 -14
  102. package/components/utils/viewport-behaviours/index.js +15 -37
  103. package/components/utils/viewport-behaviours/types.d.ts +3 -9
  104. package/components/utils/viewport-behaviours/types.js +3 -4
  105. package/node/ftps/directory/index.d.ts +1 -1
  106. package/node/ftps/directory/index.js +1 -1
  107. package/node/images/index.d.ts +1 -1
  108. package/node/images/index.js +1 -1
  109. package/node/images/transform/operations/index.d.ts +3 -3
  110. package/node/images/transform/operations/index.js +3 -3
  111. package/node/index.d.ts +2 -2
  112. package/node/index.js +2 -2
  113. package/package.json +44 -1
  114. package/components/ListLoader/utils.d.ts +0 -8
  115. package/components/ListLoader/utils.js +0 -10
@@ -7,10 +7,10 @@ import type { ActionTable, ViewportBehaviours, VisibilityOptions } from './types
7
7
  * belongs by subject, because the publish step only maps `index.js` and `types.js` into
8
8
  * the package's exports — a `utils.js` is unreachable from outside, whatever it holds.
9
9
  *
10
- * **Exported for the consumers that receive their props as text.** lm-link reads an
11
- * article's XML, where nothing is typed, and has to reject `'jump-to:banana'` before it
12
- * reaches a component. Written on its side, the rule would exist twice and drift in
13
- * silence — a verb added here would be rejected there for no visible reason.
10
+ * **Exported for the callers that build an instruction at runtime**, out of a string
11
+ * nothing has typed, and have to reject `'jump-to:banana'` before it reaches a
12
+ * component. Written on their side, the rule would exist twice and drift in silence —
13
+ * a verb added here would be rejected there for no visible reason.
14
14
  *
15
15
  * Returns a plain boolean rather than a type predicate, and that is not an oversight: a
16
16
  * verb taking an argument is written `'jump-to:500'`, which is not a member of the verb
@@ -28,11 +28,9 @@ export declare function isInstruction(value: unknown, verbs: readonly string[],
28
28
  /**
29
29
  * Whether the element counts as visible — **as a state, not as a crossing**.
30
30
  *
31
- * That distinction is the whole point. An `IntersectionObserver` reports an event, and
32
- * a behaviour hung on the event only ever runs when the screen is traversed. A
33
- * component already visible whose behaviour was held back — behind a lm-link gate,
34
- * typically — never gets a second chance, because nothing crosses when the gate lifts.
35
- * Held as a state, the condition can be recombined with whatever else gates it.
31
+ * That distinction is what the delays below are built on, and what lets a caller
32
+ * recombine visibility with whatever else it tracks: an `IntersectionObserver` reports
33
+ * an event, which is readable once, where a state is readable at any moment.
36
34
  *
37
35
  * The delays are a debounce **on this state**: the element has to hold its new value
38
36
  * for that long before the value is committed. A component crossed while scrolling fast
@@ -63,10 +61,6 @@ export type ViewportBehavioursResult = {
63
61
  * @param targetRef - The element to watch.
64
62
  * @param props - The component's visibility props.
65
63
  * @param table - What each of its verbs does. @see {@link ActionTable}
66
- * @param suspended - Holds back the verbs that **start** something, and lets through
67
- * those that stop something. This is a capability's doing — a lm-link gate — and it is
68
- * not the same as a surrender: a gate speaks of consent not yet given, so `':force'`
69
- * does not override it.
70
64
  *
71
65
  * @remarks
72
66
  * **An instruction yields to the reader by default.** The failure modes are not
@@ -75,4 +69,4 @@ export type ViewportBehavioursResult = {
75
69
  * `':force'` opts out, and is expected to be rare — which is why it is the written form
76
70
  * and yielding is the silent one.
77
71
  */
78
- export declare function useViewportBehaviours<A extends string>(targetRef: RefObject<Element | null>, props: ViewportBehaviours<A>, table: ActionTable<A>, suspended?: boolean): ViewportBehavioursResult;
72
+ export declare function useViewportBehaviours<A extends string>(targetRef: RefObject<Element | null>, props: ViewportBehaviours<A>, table: ActionTable<A>): ViewportBehavioursResult;
@@ -1,6 +1,6 @@
1
1
  import { useCallback, useEffect, useRef, useState } from 'react';
2
2
  import { useIntersectionObserver } from '../../IntersectionObserver/index.js';
3
- import { useChangeDispatch } from '../index.js';
3
+ import { useStateChangeDispatch } from '../../../agnostic/@react/effects/use-state-change-dispatch/index.js';
4
4
  import { parseInstruction, toInstructionList } from './utils.js';
5
5
  /**
6
6
  * Whether a string is an instruction this vocabulary answers to.
@@ -9,10 +9,10 @@ import { parseInstruction, toInstructionList } from './utils.js';
9
9
  * belongs by subject, because the publish step only maps `index.js` and `types.js` into
10
10
  * the package's exports — a `utils.js` is unreachable from outside, whatever it holds.
11
11
  *
12
- * **Exported for the consumers that receive their props as text.** lm-link reads an
13
- * article's XML, where nothing is typed, and has to reject `'jump-to:banana'` before it
14
- * reaches a component. Written on its side, the rule would exist twice and drift in
15
- * silence — a verb added here would be rejected there for no visible reason.
12
+ * **Exported for the callers that build an instruction at runtime**, out of a string
13
+ * nothing has typed, and have to reject `'jump-to:banana'` before it reaches a
14
+ * component. Written on their side, the rule would exist twice and drift in silence —
15
+ * a verb added here would be rejected there for no visible reason.
16
16
  *
17
17
  * Returns a plain boolean rather than a type predicate, and that is not an oversight: a
18
18
  * verb taking an argument is written `'jump-to:500'`, which is not a member of the verb
@@ -40,11 +40,9 @@ export function isInstruction(value, verbs, withArgument = {}) {
40
40
  /**
41
41
  * Whether the element counts as visible — **as a state, not as a crossing**.
42
42
  *
43
- * That distinction is the whole point. An `IntersectionObserver` reports an event, and
44
- * a behaviour hung on the event only ever runs when the screen is traversed. A
45
- * component already visible whose behaviour was held back — behind a lm-link gate,
46
- * typically — never gets a second chance, because nothing crosses when the gate lifts.
47
- * Held as a state, the condition can be recombined with whatever else gates it.
43
+ * That distinction is what the delays below are built on, and what lets a caller
44
+ * recombine visibility with whatever else it tracks: an `IntersectionObserver` reports
45
+ * an event, which is readable once, where a state is readable at any moment.
48
46
  *
49
47
  * The delays are a debounce **on this state**: the element has to hold its new value
50
48
  * for that long before the value is committed. A component crossed while scrolling fast
@@ -84,10 +82,6 @@ export function useVisibilityState(targetRef, options = {}, enabled = true) {
84
82
  * @param targetRef - The element to watch.
85
83
  * @param props - The component's visibility props.
86
84
  * @param table - What each of its verbs does. @see {@link ActionTable}
87
- * @param suspended - Holds back the verbs that **start** something, and lets through
88
- * those that stop something. This is a capability's doing — a lm-link gate — and it is
89
- * not the same as a surrender: a gate speaks of consent not yet given, so `':force'`
90
- * does not override it.
91
85
  *
92
86
  * @remarks
93
87
  * **An instruction yields to the reader by default.** The failure modes are not
@@ -96,7 +90,7 @@ export function useVisibilityState(targetRef, options = {}, enabled = true) {
96
90
  * `':force'` opts out, and is expected to be rare — which is why it is the written form
97
91
  * and yielding is the silent one.
98
92
  */
99
- export function useViewportBehaviours(targetRef, props, table, suspended = false) {
93
+ export function useViewportBehaviours(targetRef, props, table) {
100
94
  const { whenVisible, whenHidden, onVisibilityChanged } = props;
101
95
  // The table closes over the component's state, so it is a new object on every render
102
96
  // and has no business in a dependency list. Read through a ref, it is never stale.
@@ -109,8 +103,7 @@ export function useViewportBehaviours(targetRef, props, table, suspended = false
109
103
  tableRef.current = new Map(Object.entries(table));
110
104
  const surrenderedRef = useRef(new Set());
111
105
  const spentRef = useRef(new Set());
112
- const heldBackRef = useRef(new Set());
113
- const lastRunRef = useRef({ suspended });
106
+ const lastRunRef = useRef({});
114
107
  const surrender = useCallback((domain) => {
115
108
  surrenderedRef.current.add(domain);
116
109
  }, []);
@@ -120,7 +113,7 @@ export function useViewportBehaviours(targetRef, props, table, suspended = false
120
113
  const isVisible = useVisibilityState(targetRef, props, needsObserve);
121
114
  // Reported on the **settled** state, delays included: a consumer watching visibility
122
115
  // and a consumer running instructions have to be told the same story.
123
- useChangeDispatch(isVisible, next => {
116
+ useStateChangeDispatch(isVisible, next => {
124
117
  if (next === undefined)
125
118
  return;
126
119
  onVisibilityChanged?.(next);
@@ -129,42 +122,27 @@ export function useViewportBehaviours(targetRef, props, table, suspended = false
129
122
  if (isVisible === undefined)
130
123
  return;
131
124
  const last = lastRunRef.current;
132
- const crossed = last.isVisible !== isVisible;
133
- const released = !crossed && last.suspended && !suspended;
134
- lastRunRef.current = { isVisible, suspended };
135
- // Neither the state nor the suspension moved: nothing to do. Without this, any
136
- // unrelated re-render would replay the list.
137
- if (!crossed && !released)
125
+ // Without this, any unrelated re-render would replay the list.
126
+ if (last.isVisible === isVisible)
138
127
  return;
128
+ lastRunRef.current = { isVisible };
139
129
  const trigger = isVisible ? 'visible' : 'hidden';
140
130
  const list = toInstructionList(isVisible ? whenVisible : whenHidden);
141
131
  const runnable = dedupe(list);
142
- if (released)
143
- heldBackRef.current.clear();
144
132
  for (const parsed of runnable) {
145
133
  const key = `${trigger}|${parsed.verb}|${parsed.arg ?? ''}`;
146
- // A suspension only reaches a verb that *starts* something, and it is the only
147
- // one of the two brakes that can be lifted — hence the held-back list, replayed
148
- // on release so a gate opening on a visible component does what it was asked.
149
134
  const spec = tableRef.current.get(parsed.verb);
150
135
  if (spec === undefined)
151
136
  continue;
152
- if (released && !heldBackRef.current.has(key))
153
- continue;
154
- if (suspended && spec.kind === 'start') {
155
- heldBackRef.current.add(key);
156
- continue;
157
- }
158
137
  if (!parsed.force && surrenderedRef.current.has(spec.domain))
159
138
  continue;
160
139
  if (parsed.once && spentRef.current.has(key))
161
140
  continue;
162
141
  if (parsed.once)
163
142
  spentRef.current.add(key);
164
- heldBackRef.current.delete(key);
165
143
  spec.run(parsed.arg);
166
144
  }
167
- }, [isVisible, suspended, whenVisible, whenHidden]);
145
+ }, [isVisible, whenVisible, whenHidden]);
168
146
  return { isVisible, surrender };
169
147
  }
170
148
  /**
@@ -3,10 +3,9 @@
3
3
  *
4
4
  * - `once` — runs on the first crossing only. The credit is per (verb, trigger) pair
5
5
  * and lives for the mount.
6
- * - `force` — runs even after the reader has taken over the verb's domain. It
7
- * overrides the **surrender**, never a suspension: a gate speaks of consent not yet
8
- * given, a surrender of an intention already expressed, and an article able to force
9
- * its way past a disclaimer would empty it of its purpose.
6
+ * - `force` — runs even after the reader has taken over the verb's domain. It is the
7
+ * one way out of a surrender, and the only one: nothing else holds an instruction
8
+ * back.
10
9
  *
11
10
  * **They are a set, not a sequence.** `'play:once:force'` and `'play:force:once'` are
12
11
  * the same instruction, which is what spares the contract an ordering rule.
@@ -38,10 +37,6 @@ export type ParsedInstruction = {
38
37
  /**
39
38
  * What a component says about one of its verbs.
40
39
  *
41
- * @property kind - Whether the verb starts something or stops it. A suspension — a
42
- * lm-link gate, typically — holds back `'start'` and lets `'stop'` through, since a
43
- * verb that quietens a component can never work against a reader who hasn't consented
44
- * yet.
45
40
  * @property domain - Which of the component's controls this verb competes with.
46
41
  * `play` and `pause` share `'playback'`, `loud` and `mute` share `'sound'` — so pausing
47
42
  * by hand doesn't stop the sound from being cut on the way out. One flag for all of
@@ -49,7 +44,6 @@ export type ParsedInstruction = {
49
44
  * @property run - Does the thing. Receives the verb's argument, when it takes one.
50
45
  */
51
46
  export type ActionSpec<D extends string = string> = {
52
- kind: 'start' | 'stop';
53
47
  domain: D;
54
48
  run: (arg?: string) => void;
55
49
  };
@@ -3,10 +3,9 @@
3
3
  *
4
4
  * - `once` — runs on the first crossing only. The credit is per (verb, trigger) pair
5
5
  * and lives for the mount.
6
- * - `force` — runs even after the reader has taken over the verb's domain. It
7
- * overrides the **surrender**, never a suspension: a gate speaks of consent not yet
8
- * given, a surrender of an intention already expressed, and an article able to force
9
- * its way past a disclaimer would empty it of its purpose.
6
+ * - `force` — runs even after the reader has taken over the verb's domain. It is the
7
+ * one way out of a surrender, and the only one: nothing else holds an instruction
8
+ * back.
10
9
  *
11
10
  * **They are a set, not a sequence.** `'play:once:force'` and `'play:force:once'` are
12
11
  * the same instruction, which is what spares the contract an ordering rule.
@@ -1,4 +1,4 @@
1
- export * as copyDir from './copy-dir/index.js'
2
1
  export * as list from './list/index.js'
3
2
  export * as moveDir from './move-dir/index.js'
4
3
  export * as removeDir from './remove-dir/index.js'
4
+ export * as copyDir from './copy-dir/index.js'
@@ -1,4 +1,4 @@
1
- export * as copyDir from './copy-dir/index.js'
2
1
  export * as list from './list/index.js'
3
2
  export * as moveDir from './move-dir/index.js'
4
3
  export * as removeDir from './remove-dir/index.js'
4
+ export * as copyDir from './copy-dir/index.js'
@@ -1,5 +1,5 @@
1
1
  export * as create from './create/index.js'
2
2
  export * as format from './format/index.js'
3
- export * as metadata from './metadata/index.js'
4
3
  export * as transform from './transform/index.js'
4
+ export * as metadata from './metadata/index.js'
5
5
  export * as utils from './utils/index.js'
@@ -1,5 +1,5 @@
1
1
  export * as create from './create/index.js'
2
2
  export * as format from './format/index.js'
3
- export * as metadata from './metadata/index.js'
4
3
  export * as transform from './transform/index.js'
4
+ export * as metadata from './metadata/index.js'
5
5
  export * as utils from './utils/index.js'
@@ -1,15 +1,15 @@
1
1
  export * as blur from './blur/index.js'
2
2
  export * as brighten from './brighten/index.js'
3
- export * as extend from './extend/index.js'
4
3
  export * as extract from './extract/index.js'
5
4
  export * as flatten from './flatten/index.js'
5
+ export * as extend from './extend/index.js'
6
6
  export * as flip from './flip/index.js'
7
7
  export * as flop from './flop/index.js'
8
8
  export * as hue from './hue/index.js'
9
9
  export * as level from './level/index.js'
10
10
  export * as lighten from './lighten/index.js'
11
11
  export * as normalize from './normalize/index.js'
12
- export * as overlay from './overlay/index.js'
13
- export * as resize from './resize/index.js'
14
12
  export * as rotate from './rotate/index.js'
13
+ export * as resize from './resize/index.js'
15
14
  export * as saturate from './saturate/index.js'
15
+ export * as overlay from './overlay/index.js'
@@ -1,15 +1,15 @@
1
1
  export * as blur from './blur/index.js'
2
2
  export * as brighten from './brighten/index.js'
3
- export * as extend from './extend/index.js'
4
3
  export * as extract from './extract/index.js'
5
4
  export * as flatten from './flatten/index.js'
5
+ export * as extend from './extend/index.js'
6
6
  export * as flip from './flip/index.js'
7
7
  export * as flop from './flop/index.js'
8
8
  export * as hue from './hue/index.js'
9
9
  export * as level from './level/index.js'
10
10
  export * as lighten from './lighten/index.js'
11
11
  export * as normalize from './normalize/index.js'
12
- export * as overlay from './overlay/index.js'
13
- export * as resize from './resize/index.js'
14
12
  export * as rotate from './rotate/index.js'
13
+ export * as resize from './resize/index.js'
15
14
  export * as saturate from './saturate/index.js'
15
+ export * as overlay from './overlay/index.js'
package/node/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  export * as awsS3 from './@aws-s3/index.js'
2
+ export * as express from './@express/index.js'
2
3
  export * as designEdito from './@design-edito/index.js'
3
4
  export * as googleCloud from './@google-cloud/index.js'
4
- export * as express from './@express/index.js'
5
5
  export * as cloudStorage from './cloud-storage/index.js'
6
6
  export * as encryption from './encryption/index.js'
7
7
  export * as files from './files/index.js'
8
8
  export * as ftps from './ftps/index.js'
9
- export * as images from './images/index.js'
10
9
  export * as process from './process/index.js'
10
+ export * as images from './images/index.js'
11
11
  export * as sftp from './sftp/index.js'
package/node/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  export * as awsS3 from './@aws-s3/index.js'
2
+ export * as express from './@express/index.js'
2
3
  export * as designEdito from './@design-edito/index.js'
3
4
  export * as googleCloud from './@google-cloud/index.js'
4
- export * as express from './@express/index.js'
5
5
  export * as cloudStorage from './cloud-storage/index.js'
6
6
  export * as encryption from './encryption/index.js'
7
7
  export * as files from './files/index.js'
8
8
  export * as ftps from './ftps/index.js'
9
- export * as images from './images/index.js'
10
9
  export * as process from './process/index.js'
10
+ export * as images from './images/index.js'
11
11
  export * as sftp from './sftp/index.js'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@design-edito/tools",
3
- "version": "0.5.37",
3
+ "version": "0.5.39",
4
4
  "description": "",
5
5
  "author": "Maxime Fabas",
6
6
  "license": "ISC",
@@ -20,6 +20,27 @@
20
20
  "import": "./agnostic/index.js",
21
21
  "types": "./agnostic/index.d.ts"
22
22
  },
23
+ "./agnostic/@react": {
24
+ "import": "./agnostic/@react/index.js",
25
+ "types": "./agnostic/@react/index.d.ts"
26
+ },
27
+ "./agnostic/@react/effects": {
28
+ "import": "./agnostic/@react/effects/index.js",
29
+ "types": "./agnostic/@react/effects/index.d.ts"
30
+ },
31
+ "./agnostic/@react/effects/index.js": {
32
+ "import": "./agnostic/@react/effects/index.js"
33
+ },
34
+ "./agnostic/@react/effects/use-state-change-dispatch": {
35
+ "import": "./agnostic/@react/effects/use-state-change-dispatch/index.js",
36
+ "types": "./agnostic/@react/effects/use-state-change-dispatch/index.d.ts"
37
+ },
38
+ "./agnostic/@react/effects/use-state-change-dispatch/index.js": {
39
+ "import": "./agnostic/@react/effects/use-state-change-dispatch/index.js"
40
+ },
41
+ "./agnostic/@react/index.js": {
42
+ "import": "./agnostic/@react/index.js"
43
+ },
23
44
  "./agnostic/arrays": {
24
45
  "import": "./agnostic/arrays/index.js",
25
46
  "types": "./agnostic/arrays/index.d.ts"
@@ -41,6 +62,13 @@
41
62
  "./agnostic/arrays/index.js": {
42
63
  "import": "./agnostic/arrays/index.js"
43
64
  },
65
+ "./agnostic/arrays/integers-between": {
66
+ "import": "./agnostic/arrays/integers-between/index.js",
67
+ "types": "./agnostic/arrays/integers-between/index.d.ts"
68
+ },
69
+ "./agnostic/arrays/integers-between/index.js": {
70
+ "import": "./agnostic/arrays/integers-between/index.js"
71
+ },
44
72
  "./agnostic/arrays/is-array-of": {
45
73
  "import": "./agnostic/arrays/is-array-of/index.js",
46
74
  "types": "./agnostic/arrays/is-array-of/index.d.ts"
@@ -213,6 +241,13 @@
213
241
  "./agnostic/css/is-valid-css-class-name/index.js": {
214
242
  "import": "./agnostic/css/is-valid-css-class-name/index.js"
215
243
  },
244
+ "./agnostic/css/merge-class-names": {
245
+ "import": "./agnostic/css/merge-class-names/index.js",
246
+ "types": "./agnostic/css/merge-class-names/index.d.ts"
247
+ },
248
+ "./agnostic/css/merge-class-names/index.js": {
249
+ "import": "./agnostic/css/merge-class-names/index.js"
250
+ },
216
251
  "./agnostic/css/scale": {
217
252
  "import": "./agnostic/css/scale/index.js",
218
253
  "types": "./agnostic/css/scale/index.d.ts"
@@ -1502,6 +1537,10 @@
1502
1537
  "./components/Lightbox/index.js": {
1503
1538
  "import": "./components/Lightbox/index.js"
1504
1539
  },
1540
+ "./components/Lightbox/types.js": {
1541
+ "import": "./components/Lightbox/types.js",
1542
+ "types": "./components/Lightbox/types.d.ts"
1543
+ },
1505
1544
  "./components/ListLoader": {
1506
1545
  "import": "./components/ListLoader/index.js",
1507
1546
  "types": "./components/ListLoader/index.d.ts"
@@ -1537,6 +1576,10 @@
1537
1576
  "./components/Scrllgngn/index.js": {
1538
1577
  "import": "./components/Scrllgngn/index.js"
1539
1578
  },
1579
+ "./components/Scrllgngn/types.js": {
1580
+ "import": "./components/Scrllgngn/types.js",
1581
+ "types": "./components/Scrllgngn/types.d.ts"
1582
+ },
1540
1583
  "./components/ScrollListener": {
1541
1584
  "import": "./components/ScrollListener/index.js",
1542
1585
  "types": "./components/ScrollListener/index.d.ts"
@@ -1,8 +0,0 @@
1
- /**
2
- * Lists every integer from `from` to `to`, both included.
3
- *
4
- * @param from - Lower bound.
5
- * @param to - Upper bound. When lower than `from`, the range is empty.
6
- * @returns The integers in ascending order.
7
- */
8
- export declare function rangeBetween(from: number, to: number): number[];
@@ -1,10 +0,0 @@
1
- /**
2
- * Lists every integer from `from` to `to`, both included.
3
- *
4
- * @param from - Lower bound.
5
- * @param to - Upper bound. When lower than `from`, the range is empty.
6
- * @returns The integers in ascending order.
7
- */
8
- export function rangeBetween(from, to) {
9
- return Array.from({ length: Math.max(0, to - from + 1) }, (_, pos) => from + pos);
10
- }