foldkit 0.111.1 → 0.112.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 (224) hide show
  1. package/README.md +2 -2
  2. package/dist/devTools/host.d.ts +6 -0
  3. package/dist/devTools/host.d.ts.map +1 -0
  4. package/dist/devTools/host.js +4 -0
  5. package/dist/dom/dom.d.ts +6 -1
  6. package/dist/dom/dom.d.ts.map +1 -1
  7. package/dist/dom/dom.js +24 -1
  8. package/dist/html/index.d.ts +4 -3
  9. package/dist/html/index.d.ts.map +1 -1
  10. package/dist/html/index.js +4 -3
  11. package/dist/html/submodel.d.ts +2 -2
  12. package/dist/html/submodel.d.ts.map +1 -1
  13. package/dist/index.d.ts +0 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +0 -1
  16. package/dist/runtime/browserListeners.d.ts.map +1 -1
  17. package/dist/runtime/browserListeners.js +12 -7
  18. package/dist/runtime/public.d.ts +1 -1
  19. package/dist/runtime/public.d.ts.map +1 -1
  20. package/dist/runtime/runtime.d.ts +14 -1
  21. package/dist/runtime/runtime.d.ts.map +1 -1
  22. package/dist/runtime/runtime.js +25 -8
  23. package/dist/runtime/subscription.d.ts +1 -1
  24. package/dist/subscription/public.d.ts +1 -1
  25. package/dist/subscription/public.d.ts.map +1 -1
  26. package/package.json +12 -93
  27. package/dist/devTools/overlay-styles.d.ts +0 -3
  28. package/dist/devTools/overlay-styles.d.ts.map +0 -1
  29. package/dist/devTools/overlay-styles.js +0 -706
  30. package/dist/devTools/overlay.d.ts +0 -63
  31. package/dist/devTools/overlay.d.ts.map +0 -1
  32. package/dist/devTools/overlay.js +0 -1244
  33. package/dist/test/apps/disabledButton.d.ts +0 -38
  34. package/dist/test/apps/disabledButton.d.ts.map +0 -1
  35. package/dist/test/apps/disabledButton.js +0 -71
  36. package/dist/ui/anchor.d.ts +0 -38
  37. package/dist/ui/anchor.d.ts.map +0 -1
  38. package/dist/ui/anchor.js +0 -142
  39. package/dist/ui/animation/index.d.ts +0 -49
  40. package/dist/ui/animation/index.d.ts.map +0 -1
  41. package/dist/ui/animation/index.js +0 -74
  42. package/dist/ui/animation/public.d.ts +0 -3
  43. package/dist/ui/animation/public.d.ts.map +0 -1
  44. package/dist/ui/animation/public.js +0 -1
  45. package/dist/ui/animation/schema.d.ts +0 -43
  46. package/dist/ui/animation/schema.d.ts.map +0 -1
  47. package/dist/ui/animation/schema.js +0 -41
  48. package/dist/ui/animation/update.d.ts +0 -24
  49. package/dist/ui/animation/update.d.ts.map +0 -1
  50. package/dist/ui/animation/update.js +0 -67
  51. package/dist/ui/button/index.d.ts +0 -17
  52. package/dist/ui/button/index.d.ts.map +0 -1
  53. package/dist/ui/button/index.js +0 -22
  54. package/dist/ui/button/public.d.ts +0 -3
  55. package/dist/ui/button/public.d.ts.map +0 -1
  56. package/dist/ui/button/public.js +0 -1
  57. package/dist/ui/calendar/index.d.ts +0 -462
  58. package/dist/ui/calendar/index.d.ts.map +0 -1
  59. package/dist/ui/calendar/index.js +0 -824
  60. package/dist/ui/calendar/public.d.ts +0 -3
  61. package/dist/ui/calendar/public.d.ts.map +0 -1
  62. package/dist/ui/calendar/public.js +0 -1
  63. package/dist/ui/checkbox/index.d.ts +0 -119
  64. package/dist/ui/checkbox/index.d.ts.map +0 -1
  65. package/dist/ui/checkbox/index.js +0 -110
  66. package/dist/ui/checkbox/public.d.ts +0 -3
  67. package/dist/ui/checkbox/public.d.ts.map +0 -1
  68. package/dist/ui/checkbox/public.js +0 -1
  69. package/dist/ui/combobox/multi.d.ts +0 -184
  70. package/dist/ui/combobox/multi.d.ts.map +0 -1
  71. package/dist/ui/combobox/multi.js +0 -81
  72. package/dist/ui/combobox/multiPublic.d.ts +0 -3
  73. package/dist/ui/combobox/multiPublic.d.ts.map +0 -1
  74. package/dist/ui/combobox/multiPublic.js +0 -1
  75. package/dist/ui/combobox/public.d.ts +0 -7
  76. package/dist/ui/combobox/public.d.ts.map +0 -1
  77. package/dist/ui/combobox/public.js +0 -3
  78. package/dist/ui/combobox/shared.d.ts +0 -422
  79. package/dist/ui/combobox/shared.d.ts.map +0 -1
  80. package/dist/ui/combobox/shared.js +0 -707
  81. package/dist/ui/combobox/single.d.ts +0 -199
  82. package/dist/ui/combobox/single.d.ts.map +0 -1
  83. package/dist/ui/combobox/single.js +0 -106
  84. package/dist/ui/datePicker/index.d.ts +0 -457
  85. package/dist/ui/datePicker/index.d.ts.map +0 -1
  86. package/dist/ui/datePicker/index.js +0 -317
  87. package/dist/ui/datePicker/public.d.ts +0 -3
  88. package/dist/ui/datePicker/public.d.ts.map +0 -1
  89. package/dist/ui/datePicker/public.js +0 -1
  90. package/dist/ui/dialog/index.d.ts +0 -155
  91. package/dist/ui/dialog/index.d.ts.map +0 -1
  92. package/dist/ui/dialog/index.js +0 -208
  93. package/dist/ui/dialog/public.d.ts +0 -3
  94. package/dist/ui/dialog/public.d.ts.map +0 -1
  95. package/dist/ui/dialog/public.js +0 -1
  96. package/dist/ui/disclosure/index.d.ts +0 -110
  97. package/dist/ui/disclosure/index.d.ts.map +0 -1
  98. package/dist/ui/disclosure/index.js +0 -110
  99. package/dist/ui/disclosure/public.d.ts +0 -3
  100. package/dist/ui/disclosure/public.d.ts.map +0 -1
  101. package/dist/ui/disclosure/public.js +0 -1
  102. package/dist/ui/dragAndDrop/index.d.ts +0 -540
  103. package/dist/ui/dragAndDrop/index.d.ts.map +0 -1
  104. package/dist/ui/dragAndDrop/index.js +0 -535
  105. package/dist/ui/dragAndDrop/public.d.ts +0 -3
  106. package/dist/ui/dragAndDrop/public.d.ts.map +0 -1
  107. package/dist/ui/dragAndDrop/public.js +0 -1
  108. package/dist/ui/fieldset/index.d.ts +0 -21
  109. package/dist/ui/fieldset/index.d.ts.map +0 -1
  110. package/dist/ui/fieldset/index.js +0 -25
  111. package/dist/ui/fieldset/public.d.ts +0 -3
  112. package/dist/ui/fieldset/public.d.ts.map +0 -1
  113. package/dist/ui/fieldset/public.js +0 -1
  114. package/dist/ui/fileDrop/index.d.ts +0 -109
  115. package/dist/ui/fileDrop/index.d.ts.map +0 -1
  116. package/dist/ui/fileDrop/index.js +0 -126
  117. package/dist/ui/fileDrop/public.d.ts +0 -3
  118. package/dist/ui/fileDrop/public.d.ts.map +0 -1
  119. package/dist/ui/fileDrop/public.js +0 -1
  120. package/dist/ui/group.d.ts +0 -8
  121. package/dist/ui/group.d.ts.map +0 -1
  122. package/dist/ui/group.js +0 -13
  123. package/dist/ui/index.d.ts +0 -25
  124. package/dist/ui/index.d.ts.map +0 -1
  125. package/dist/ui/index.js +0 -24
  126. package/dist/ui/input/index.d.ts +0 -26
  127. package/dist/ui/input/index.d.ts.map +0 -1
  128. package/dist/ui/input/index.js +0 -43
  129. package/dist/ui/input/public.d.ts +0 -3
  130. package/dist/ui/input/public.d.ts.map +0 -1
  131. package/dist/ui/input/public.js +0 -1
  132. package/dist/ui/keyboard.d.ts +0 -6
  133. package/dist/ui/keyboard.d.ts.map +0 -1
  134. package/dist/ui/keyboard.js +0 -9
  135. package/dist/ui/listbox/multi.d.ts +0 -190
  136. package/dist/ui/listbox/multi.d.ts.map +0 -1
  137. package/dist/ui/listbox/multi.js +0 -65
  138. package/dist/ui/listbox/multiPublic.d.ts +0 -3
  139. package/dist/ui/listbox/multiPublic.d.ts.map +0 -1
  140. package/dist/ui/listbox/multiPublic.js +0 -1
  141. package/dist/ui/listbox/public.d.ts +0 -7
  142. package/dist/ui/listbox/public.d.ts.map +0 -1
  143. package/dist/ui/listbox/public.js +0 -3
  144. package/dist/ui/listbox/shared.d.ts +0 -431
  145. package/dist/ui/listbox/shared.d.ts.map +0 -1
  146. package/dist/ui/listbox/shared.js +0 -669
  147. package/dist/ui/listbox/single.d.ts +0 -208
  148. package/dist/ui/listbox/single.d.ts.map +0 -1
  149. package/dist/ui/listbox/single.js +0 -73
  150. package/dist/ui/menu/index.d.ts +0 -367
  151. package/dist/ui/menu/index.d.ts.map +0 -1
  152. package/dist/ui/menu/index.js +0 -681
  153. package/dist/ui/menu/public.d.ts +0 -4
  154. package/dist/ui/menu/public.d.ts.map +0 -1
  155. package/dist/ui/menu/public.js +0 -1
  156. package/dist/ui/popover/index.d.ts +0 -267
  157. package/dist/ui/popover/index.d.ts.map +0 -1
  158. package/dist/ui/popover/index.js +0 -345
  159. package/dist/ui/popover/public.d.ts +0 -4
  160. package/dist/ui/popover/public.d.ts.map +0 -1
  161. package/dist/ui/popover/public.js +0 -1
  162. package/dist/ui/radioGroup/index.d.ts +0 -169
  163. package/dist/ui/radioGroup/index.d.ts.map +0 -1
  164. package/dist/ui/radioGroup/index.js +0 -196
  165. package/dist/ui/radioGroup/public.d.ts +0 -3
  166. package/dist/ui/radioGroup/public.d.ts.map +0 -1
  167. package/dist/ui/radioGroup/public.js +0 -1
  168. package/dist/ui/select/index.d.ts +0 -24
  169. package/dist/ui/select/index.d.ts.map +0 -1
  170. package/dist/ui/select/index.js +0 -40
  171. package/dist/ui/select/public.d.ts +0 -3
  172. package/dist/ui/select/public.d.ts.map +0 -1
  173. package/dist/ui/select/public.js +0 -1
  174. package/dist/ui/slider/index.d.ts +0 -318
  175. package/dist/ui/slider/index.d.ts.map +0 -1
  176. package/dist/ui/slider/index.js +0 -336
  177. package/dist/ui/slider/public.d.ts +0 -3
  178. package/dist/ui/slider/public.d.ts.map +0 -1
  179. package/dist/ui/slider/public.js +0 -1
  180. package/dist/ui/switch/index.d.ts +0 -99
  181. package/dist/ui/switch/index.d.ts.map +0 -1
  182. package/dist/ui/switch/index.js +0 -106
  183. package/dist/ui/switch/public.d.ts +0 -3
  184. package/dist/ui/switch/public.d.ts.map +0 -1
  185. package/dist/ui/switch/public.js +0 -1
  186. package/dist/ui/tabs/index.d.ts +0 -155
  187. package/dist/ui/tabs/index.d.ts.map +0 -1
  188. package/dist/ui/tabs/index.js +0 -184
  189. package/dist/ui/tabs/public.d.ts +0 -3
  190. package/dist/ui/tabs/public.d.ts.map +0 -1
  191. package/dist/ui/tabs/public.js +0 -1
  192. package/dist/ui/textarea/index.d.ts +0 -26
  193. package/dist/ui/textarea/index.d.ts.map +0 -1
  194. package/dist/ui/textarea/index.js +0 -44
  195. package/dist/ui/textarea/public.d.ts +0 -3
  196. package/dist/ui/textarea/public.d.ts.map +0 -1
  197. package/dist/ui/textarea/public.js +0 -1
  198. package/dist/ui/toast/index.d.ts +0 -608
  199. package/dist/ui/toast/index.d.ts.map +0 -1
  200. package/dist/ui/toast/index.js +0 -145
  201. package/dist/ui/toast/public.d.ts +0 -4
  202. package/dist/ui/toast/public.d.ts.map +0 -1
  203. package/dist/ui/toast/public.js +0 -1
  204. package/dist/ui/toast/schema.d.ts +0 -154
  205. package/dist/ui/toast/schema.d.ts.map +0 -1
  206. package/dist/ui/toast/schema.js +0 -93
  207. package/dist/ui/toast/update.d.ts +0 -510
  208. package/dist/ui/toast/update.d.ts.map +0 -1
  209. package/dist/ui/toast/update.js +0 -225
  210. package/dist/ui/tooltip/index.d.ts +0 -170
  211. package/dist/ui/tooltip/index.d.ts.map +0 -1
  212. package/dist/ui/tooltip/index.js +0 -252
  213. package/dist/ui/tooltip/public.d.ts +0 -4
  214. package/dist/ui/tooltip/public.d.ts.map +0 -1
  215. package/dist/ui/tooltip/public.js +0 -1
  216. package/dist/ui/typeahead.d.ts +0 -4
  217. package/dist/ui/typeahead.d.ts.map +0 -1
  218. package/dist/ui/typeahead.js +0 -14
  219. package/dist/ui/virtualList/index.d.ts +0 -202
  220. package/dist/ui/virtualList/index.d.ts.map +0 -1
  221. package/dist/ui/virtualList/index.js +0 -391
  222. package/dist/ui/virtualList/public.d.ts +0 -3
  223. package/dist/ui/virtualList/public.d.ts.map +0 -1
  224. package/dist/ui/virtualList/public.js +0 -1
@@ -1,7 +1,6 @@
1
- import { BrowserRuntime } from '@effect/platform-browser';
2
1
  import { Array, Cause, Context, Duration, Effect, Exit, Fiber, Function, Layer, Match, Option, Predicate, PubSub, Queue, Record, Ref, Scheduler, Schema, Stream, SubscriptionRef, pipe, } from 'effect';
3
2
  import { h } from 'snabbdom';
4
- import { createOverlay } from '../devTools/overlay.js';
3
+ import { BrowserRuntime } from '@effect/platform-browser';
5
4
  import { createDevToolsStore, } from '../devTools/store.js';
6
5
  import { startWebSocketBridge } from '../devTools/webSocketBridge.js';
7
6
  import { __beginRender as beginHtmlRender, __clearRuntime as clearHtmlRuntime, __createBoundaryRegistry as createHtmlBoundaryRegistry, __setRuntime as setHtmlRuntime, } from '../html/index.js';
@@ -540,9 +539,10 @@ const makeRuntime = ({ ports, Model, flags: resolveFlags, init, update, view, ma
540
539
  position: config.position ?? DEFAULT_DEV_TOOLS_POSITION,
541
540
  mode: resolveDevToolsMode(config.mode ?? DEFAULT_DEV_TOOLS_MODE),
542
541
  maybeBanner: Option.fromNullishOr(config.banner),
542
+ maybeOverlay: Option.fromNullishOr(config.overlay),
543
543
  })));
544
544
  if (Option.isSome(resolvedDevTools)) {
545
- const { position, mode, maybeBanner } = resolvedDevTools.value;
545
+ const { position, mode, maybeBanner, maybeOverlay } = resolvedDevTools.value;
546
546
  // NOTE: when excludeFromHistory is active, the runtime drops
547
547
  // excluded Messages from the recorded history. Replay walks the
548
548
  // recorded entries forward from the nearest keyframe. With
@@ -590,7 +590,10 @@ const makeRuntime = ({ ports, Model, flags: resolveFlags, init, update, view, ma
590
590
  // The init render runs below; capture the events it produces. We
591
591
  // record init AFTER that render so the buffer reflects the mounts
592
592
  // that fired on the first paint.
593
- yield* createOverlay(devToolsStore, position, mode, maybeBanner);
593
+ yield* Option.match(maybeOverlay, {
594
+ onNone: () => Effect.void,
595
+ onSome: overlay => overlay(devToolsStore, position, mode, maybeBanner),
596
+ });
594
597
  if (import.meta.hot) {
595
598
  const maybeMessageSchema = devTools !== undefined && devTools !== false
596
599
  ? Option.fromNullishOr(devTools.Message)
@@ -658,10 +661,24 @@ const makeRuntime = ({ ports, Model, flags: resolveFlags, init, update, view, ma
658
661
  yield* crashWith(cause, maybeMessage);
659
662
  }))));
660
663
  // NOTE: reloading on bfcache restore is a page-level decision, so
661
- // only a page-owning runtime installs the listener. An embedded app
662
- // must never force the host page to reload.
663
- if (manageDocument) {
664
- yield* Effect.acquireRelease(Effect.sync(() => addBfcacheRestoreListener()), removeBfcacheRestoreListener => Effect.sync(() => removeBfcacheRestoreListener()));
664
+ // only a page-owning runtime that manages the document installs the
665
+ // listener. An app started through `embed` carries a host connector
666
+ // and must never force the host page to reload, so it is excluded
667
+ // even when it manages the document.
668
+ //
669
+ // The listener is installed for the page's whole lifetime and is
670
+ // deliberately not torn down with the runtime scope.
671
+ // `BrowserRuntime.runMain` interrupts the runtime on `beforeunload`,
672
+ // which is exactly when the browser freezes the page into the
673
+ // back/forward cache. A scope-bound listener would be removed by that
674
+ // interrupt before the freeze, so the `pageshow` restore would have
675
+ // nothing left to reload and the page would come back blank: the
676
+ // interrupt finalizer empties the container. A full document
677
+ // navigation (the only way into and out of a cross-origin-isolated
678
+ // page) is what exercises this path. Registration is idempotent, so an
679
+ // HMR re-run does not stack listeners.
680
+ if (manageDocument && Option.isNone(maybeConnector)) {
681
+ yield* Effect.sync(() => addBfcacheRestoreListener());
665
682
  }
666
683
  if (subscriptions) {
667
684
  yield* pipe(subscriptions, Record.toEntries, Effect.forEach(([_key, { dependenciesSchema, modelToDependencies, keepAliveEquivalence, dependenciesToStream, },]) => Effect.gen(function* () {
@@ -42,7 +42,7 @@ type Entry<Model, Message, Dependencies, Services = never> = EntryWithoutKeepAli
42
42
  * Stream can still read the latest dependencies via the second
43
43
  * `readDependencies` argument. Use this when the Stream needs mid-flight
44
44
  * access to data that changes often but shouldn't trigger restarts
45
- * (Foldkit UI's `Ui.DragAndDrop.autoScroll` reading the latest pointer
45
+ * (Foldkit UI's `DragAndDrop.autoScroll` reading the latest pointer
46
46
  * `clientY` each rAF tick is the canonical example).
47
47
  *
48
48
  * `dependenciesSchema` must be a `Schema.Struct` so every dependency is
@@ -1,5 +1,5 @@
1
1
  export { aggregate, lift, make, persistent } from '../runtime/subscription.js';
2
- export type { Subscription, Subscriptions } from '../runtime/subscription.js';
2
+ export type { EntryWithoutKeepAlive, Subscription, Subscriptions, } from '../runtime/subscription.js';
3
3
  export { animationFrame } from './animationFrame.js';
4
4
  export type { AnimationFrameConfig } from './animationFrame.js';
5
5
  //# sourceMappingURL=public.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/subscription/public.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAE9E,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE7E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/subscription/public.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAE9E,YAAY,EACV,qBAAqB,EACrB,YAAY,EACZ,aAAa,GACd,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "foldkit",
3
- "version": "0.111.1",
3
+ "version": "0.112.1",
4
4
  "description": "A TypeScript frontend framework, built on Effect and architected like Elm",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -95,6 +95,10 @@
95
95
  "types": "./dist/struct/public.d.ts",
96
96
  "import": "./dist/struct/public.js"
97
97
  },
98
+ "./submodel": {
99
+ "types": "./dist/submodel/public.d.ts",
100
+ "import": "./dist/submodel/public.js"
101
+ },
98
102
  "./subscription": {
99
103
  "types": "./dist/subscription/public.d.ts",
100
104
  "import": "./dist/subscription/public.js"
@@ -107,94 +111,6 @@
107
111
  "types": "./dist/test/vitest.d.ts",
108
112
  "import": "./dist/test/vitest.js"
109
113
  },
110
- "./ui": {
111
- "types": "./dist/ui/index.d.ts",
112
- "import": "./dist/ui/index.js"
113
- },
114
- "./ui/animation": {
115
- "types": "./dist/ui/animation/public.d.ts",
116
- "import": "./dist/ui/animation/public.js"
117
- },
118
- "./ui/button": {
119
- "types": "./dist/ui/button/public.d.ts",
120
- "import": "./dist/ui/button/public.js"
121
- },
122
- "./ui/calendar": {
123
- "types": "./dist/ui/calendar/public.d.ts",
124
- "import": "./dist/ui/calendar/public.js"
125
- },
126
- "./ui/checkbox": {
127
- "types": "./dist/ui/checkbox/public.d.ts",
128
- "import": "./dist/ui/checkbox/public.js"
129
- },
130
- "./ui/dialog": {
131
- "types": "./dist/ui/dialog/public.d.ts",
132
- "import": "./dist/ui/dialog/public.js"
133
- },
134
- "./ui/disclosure": {
135
- "types": "./dist/ui/disclosure/public.d.ts",
136
- "import": "./dist/ui/disclosure/public.js"
137
- },
138
- "./ui/fieldset": {
139
- "types": "./dist/ui/fieldset/public.d.ts",
140
- "import": "./dist/ui/fieldset/public.js"
141
- },
142
- "./ui/input": {
143
- "types": "./dist/ui/input/public.d.ts",
144
- "import": "./dist/ui/input/public.js"
145
- },
146
- "./ui/listbox": {
147
- "types": "./dist/ui/listbox/public.d.ts",
148
- "import": "./dist/ui/listbox/public.js"
149
- },
150
- "./ui/combobox": {
151
- "types": "./dist/ui/combobox/public.d.ts",
152
- "import": "./dist/ui/combobox/public.js"
153
- },
154
- "./ui/menu": {
155
- "types": "./dist/ui/menu/public.d.ts",
156
- "import": "./dist/ui/menu/public.js"
157
- },
158
- "./ui/popover": {
159
- "types": "./dist/ui/popover/public.d.ts",
160
- "import": "./dist/ui/popover/public.js"
161
- },
162
- "./ui/radioGroup": {
163
- "types": "./dist/ui/radioGroup/public.d.ts",
164
- "import": "./dist/ui/radioGroup/public.js"
165
- },
166
- "./ui/select": {
167
- "types": "./dist/ui/select/public.d.ts",
168
- "import": "./dist/ui/select/public.js"
169
- },
170
- "./ui/slider": {
171
- "types": "./dist/ui/slider/public.d.ts",
172
- "import": "./dist/ui/slider/public.js"
173
- },
174
- "./ui/switch": {
175
- "types": "./dist/ui/switch/public.d.ts",
176
- "import": "./dist/ui/switch/public.js"
177
- },
178
- "./ui/textarea": {
179
- "types": "./dist/ui/textarea/public.d.ts",
180
- "import": "./dist/ui/textarea/public.js"
181
- },
182
- "./ui/tabs": {
183
- "types": "./dist/ui/tabs/public.d.ts",
184
- "import": "./dist/ui/tabs/public.js"
185
- },
186
- "./ui/toast": {
187
- "types": "./dist/ui/toast/public.d.ts",
188
- "import": "./dist/ui/toast/public.js"
189
- },
190
- "./ui/tooltip": {
191
- "types": "./dist/ui/tooltip/public.d.ts",
192
- "import": "./dist/ui/tooltip/public.js"
193
- },
194
- "./ui/virtualList": {
195
- "types": "./dist/ui/virtualList/public.d.ts",
196
- "import": "./dist/ui/virtualList/public.js"
197
- },
198
114
  "./url": {
199
115
  "types": "./dist/url/public.d.ts",
200
116
  "import": "./dist/url/public.js"
@@ -202,6 +118,10 @@
202
118
  "./devtools-protocol": {
203
119
  "types": "./dist/devTools/public.d.ts",
204
120
  "import": "./dist/devTools/public.js"
121
+ },
122
+ "./devtools-host": {
123
+ "types": "./dist/devTools/host.d.ts",
124
+ "import": "./dist/devTools/host.js"
205
125
  }
206
126
  },
207
127
  "sideEffects": false,
@@ -237,7 +157,6 @@
237
157
  "directory": "packages/foldkit"
238
158
  },
239
159
  "dependencies": {
240
- "@floating-ui/dom": "^1.7.6",
241
160
  "clsx": "^2.1.1",
242
161
  "snabbdom": "^3.6.3"
243
162
  },
@@ -249,10 +168,10 @@
249
168
  },
250
169
  "scripts": {
251
170
  "clean": "rimraf dist *.tsbuildinfo",
252
- "build": "pnpm run clean && node scripts/inline-css.js && tsc -b tsconfig.build.json",
253
- "watch": "node scripts/inline-css.js && tsc -b tsconfig.build.json --watch",
171
+ "build": "pnpm run clean && tsc -b tsconfig.build.json",
172
+ "watch": "tsc -b tsconfig.build.json --watch",
254
173
  "lint": "eslint src",
255
- "typecheck": "node scripts/inline-css.js && tsc -b tsconfig.build.json --noEmit",
174
+ "typecheck": "tsc -b tsconfig.build.json --noEmit",
256
175
  "test": "vitest run",
257
176
  "docs": "typedoc"
258
177
  }
@@ -1,3 +0,0 @@
1
- declare const overlayStyles = ":host {\n position: relative;\n z-index: 2147483647;\n\n --dt-bg: #1e1e2e;\n --dt-surface-selected: #282839;\n --dt-border: #45475a;\n --dt-text: #cdd6f4;\n --dt-text-muted: #9399b2;\n --dt-accent: #cba6f7;\n --dt-live: #a6e3a1;\n --dt-paused: #fab387;\n --dt-json-string: #a6e3a1;\n --dt-json-number: #89b4fa;\n --dt-json-boolean: #fab387;\n --dt-json-null: #9399b2;\n --dt-json-key: #89dceb;\n --dt-json-tag: #cba6f7;\n --dt-json-preview: #9399b2;\n --dt-json-arrow: #9399b2;\n --dt-tree-hover: #313244;\n --dt-diff-changed: #74c7ec;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\nbutton {\n font: inherit;\n color: inherit;\n}\nul {\n list-style: none;\n}\n\n.fixed {\n position: fixed;\n}\n.flex {\n display: flex;\n}\n.flex-col {\n flex-direction: column;\n}\n.flex-1 {\n flex: 1 1 0%;\n}\n.items-center {\n align-items: center;\n}\n.justify-center {\n justify-content: center;\n}\n.justify-between {\n justify-content: space-between;\n}\n.shrink-0 {\n flex-shrink: 0;\n}\n.inline-block {\n display: inline-block;\n}\n.gap-0\\.5 {\n gap: 2px;\n}\n.gap-1\\.5 {\n gap: 6px;\n}\n.gap-2 {\n gap: 8px;\n}\n.gap-3 {\n gap: 12px;\n}\n.gap-px {\n gap: 1px;\n}\n.px-1 {\n padding-left: 4px;\n padding-right: 4px;\n}\n.px-2 {\n padding-left: 8px;\n padding-right: 8px;\n}\n.px-2\\.5 {\n padding-left: 10px;\n padding-right: 10px;\n}\n.p-3 {\n padding: 12px;\n}\n.px-3 {\n padding-left: 12px;\n padding-right: 12px;\n}\n.py-0\\.5 {\n padding-top: 2px;\n padding-bottom: 2px;\n}\n.pt-1 {\n padding-top: 4px;\n}\n.pl-1 {\n padding-left: 4px;\n}\n.py-1 {\n padding-top: 4px;\n padding-bottom: 4px;\n}\n.py-1\\.5 {\n padding-top: 6px;\n padding-bottom: 6px;\n}\n.py-2 {\n padding-top: 8px;\n padding-bottom: 8px;\n}\n.py-px {\n padding-top: 1px;\n padding-bottom: 1px;\n}\n.w-1\\.5 {\n width: 6px;\n}\n.h-1\\.5 {\n height: 6px;\n}\n.w-3 {\n width: 12px;\n}\n.w-5 {\n width: 20px;\n}\n.h-5 {\n height: 20px;\n}\n.w-14 {\n width: 56px;\n}\n.h-14 {\n height: 56px;\n}\n.min-w-0 {\n min-width: 0;\n}\n.min-w-5 {\n min-width: 20px;\n}\n.min-h-0 {\n min-height: 0;\n}\n/* Badge positions \u2014 flush against side edge */\n.dt-pos-br {\n bottom: 16px;\n right: 0;\n border-radius: 6px 0 0 6px;\n}\n.dt-pos-bl {\n bottom: 16px;\n left: 0;\n border-radius: 0 6px 6px 0;\n}\n.dt-pos-tr {\n top: 16px;\n right: 0;\n border-radius: 6px 0 0 6px;\n}\n.dt-pos-tl {\n top: 16px;\n left: 0;\n border-radius: 0 6px 6px 0;\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.overflow-auto {\n overflow: auto;\n}\n.overflow-y-auto {\n overflow-y: auto;\n}\n.overscroll-none {\n overscroll-behavior: none;\n}\n\n.truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.rounded {\n border-radius: 4px;\n}\n.rounded-lg {\n border-radius: 8px;\n}\n.rounded-full {\n border-radius: 9999px;\n}\n.border {\n border-width: 1px;\n border-style: solid;\n border-color: var(--dt-border);\n}\n.border-b {\n border-bottom: 1px solid var(--dt-border);\n}\n.border-t {\n border-top: 1px solid var(--dt-border);\n}\n.border-r {\n border-right: 1px solid var(--dt-border);\n}\n.border-l {\n border-left: 1px solid var(--dt-border);\n}\n.border-none {\n border: none;\n}\n.selected {\n background-color: var(--dt-surface-selected);\n}\n.dt-row:hover:not(.selected) {\n background-color: var(--dt-tree-hover);\n}\n.dt-header-button:hover {\n color: var(--dt-text);\n}\n.dt-resume-button:hover {\n opacity: 0.7;\n}\n.dt-scroll-pill {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n flex-shrink: 0;\n padding: 4px 12px;\n background-color: var(--dt-surface-selected);\n border: none;\n border-bottom: 1px solid var(--dt-border);\n color: var(--dt-accent);\n font-family:\n ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;\n font-size: 13px;\n cursor: pointer;\n}\n.dt-scroll-pill-icon {\n width: 12px;\n height: 12px;\n}\n.dt-scroll-pill-text {\n margin-top: 1px;\n}\n.dt-scroll-pill:hover {\n background-color: var(--dt-tree-hover);\n}\n.dt-scroll-pill:focus-visible {\n outline: 1px solid var(--dt-accent);\n outline-offset: -1px;\n}\n.dt-filter-wrapper {\n position: relative;\n flex-shrink: 0;\n border-bottom: 1px solid var(--dt-border);\n}\n.dt-filter-button {\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 6px 12px;\n background: transparent;\n border: none;\n color: var(--dt-text-muted);\n font-family:\n ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;\n font-size: 13px;\n cursor: pointer;\n text-align: left;\n}\n.dt-filter-button:hover {\n color: var(--dt-text);\n background-color: var(--dt-tree-hover);\n}\n.dt-filter-button:focus-visible {\n outline: 1px solid var(--dt-accent);\n outline-offset: -1px;\n}\n.dt-filter-button[data-open] {\n color: var(--dt-text);\n background-color: var(--dt-surface-selected);\n}\n.dt-filter-button[data-open]:hover {\n background-color: var(--dt-tree-hover);\n}\n.dt-filter-button[data-open] .json-arrow {\n transform: rotate(180deg);\n}\n.dt-filter-items {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n background-color: var(--dt-bg);\n border-top: 1px solid var(--dt-border);\n border-bottom: 1px solid var(--dt-border);\n z-index: 10;\n max-height: 200px;\n overflow-y: auto;\n outline: none;\n}\n.dt-filter-item {\n padding: 6px 12px;\n color: var(--dt-text-muted);\n cursor: pointer;\n font-family:\n ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;\n font-size: 13px;\n border-bottom: 1px solid var(--dt-border);\n}\n.dt-filter-item:last-child {\n border-bottom: none;\n}\n.dt-filter-item[data-active] {\n background-color: var(--dt-tree-hover);\n color: var(--dt-text);\n}\n.dt-filter-item[data-selected] {\n color: var(--dt-accent);\n}\n.dt-filter-check {\n width: 12px;\n height: 12px;\n visibility: hidden;\n}\n.dt-filter-item[data-selected] .dt-filter-check {\n visibility: visible;\n color: var(--dt-accent);\n}\n.dt-filter-backdrop {\n position: fixed;\n inset: 0;\n pointer-events: none;\n}\n.dt-tab-button {\n position: relative;\n background: transparent;\n border: none;\n border-right: 1px solid var(--dt-border);\n outline: none;\n flex: 1;\n}\n.dt-tab-button:last-child {\n border-right: none;\n}\n.dt-tab-active {\n background-color: var(--dt-surface-selected);\n}\n.dt-tab-button:not(.dt-tab-active):hover {\n color: var(--dt-text);\n background-color: rgba(49, 50, 68, 0.3);\n}\n.font-sans {\n font-family:\n system-ui,\n -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n Roboto,\n sans-serif;\n}\n.font-mono {\n font-family:\n ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;\n}\n.font-medium {\n font-weight: 500;\n}\n.font-semibold {\n font-weight: 600;\n}\n.text-xs {\n font-size: 12px;\n}\n.text-2xs {\n font-size: 10px;\n}\n.text-sm {\n font-size: 11px;\n}\n.text-base {\n font-size: 13px;\n}\n.text-md {\n font-size: 15px;\n}\n.text-lg {\n font-size: 20px;\n}\n.text-xl {\n font-size: 26px;\n}\n.italic {\n font-style: italic;\n}\n.text-right {\n text-align: right;\n}\n.tracking-wide {\n letter-spacing: 0.025em;\n}\n.tracking-wider {\n letter-spacing: 0.05em;\n}\n.leading-none {\n line-height: 1;\n}\n.leading-snug {\n line-height: 1.35;\n}\n.bg-dt-bg {\n background-color: var(--dt-bg);\n}\n.bg-dt-live {\n background-color: var(--dt-live);\n}\n.bg-transparent {\n background-color: transparent;\n}\n.text-dt {\n color: var(--dt-text);\n}\n.text-dt-bg {\n color: var(--dt-bg);\n}\n.text-dt-muted {\n color: var(--dt-text-muted);\n}\n.text-dt-accent {\n color: var(--dt-accent);\n}\n.text-dt-live {\n color: var(--dt-live);\n}\n.text-dt-paused {\n color: var(--dt-paused);\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.outline-none {\n outline: none;\n}\n.transition-colors {\n transition-property: color, background-color, border-color;\n transition-duration: 100ms;\n transition-timing-function: ease;\n}\n\n/* Panel */\n.dt-panel {\n width: 360px;\n height: 480px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);\n z-index: 99998;\n}\n/* Panel positions */\n.dt-panel-br {\n bottom: 16px;\n right: 28px;\n}\n.dt-panel-bl {\n bottom: 16px;\n left: 28px;\n}\n.dt-panel-tr {\n top: 16px;\n right: 28px;\n}\n.dt-panel-tl {\n top: 16px;\n left: 28px;\n}\n.dt-panel-wide {\n width: 720px;\n}\n.dt-message-pane {\n width: 320px;\n flex-shrink: 0;\n}\n.dt-badge {\n z-index: 99999;\n box-shadow: -2px 0 8px rgba(0, 0, 0, 0.3);\n transition: background-color 150ms ease;\n border: 1px solid var(--dt-border);\n}\n.dt-badge-accent:hover {\n background-color: #252538;\n}\n.dt-badge-paused {\n background-color: var(--dt-paused);\n color: var(--dt-bg);\n border: none;\n}\n.dt-badge-paused:hover {\n background-color: #e0a070;\n}\n.dt-badge.dt-pos-br,\n.dt-badge.dt-pos-tr {\n border-right: none;\n}\n.dt-badge.dt-pos-bl,\n.dt-badge.dt-pos-tl {\n border-left: none;\n}\n\n/* JSON tree */\n.tree-row {\n position: relative;\n white-space: nowrap;\n line-height: 18px;\n padding-right: 8px;\n}\n.tree-row-expandable:hover {\n background-color: var(--dt-tree-hover);\n}\n.inspector-tree {\n font-family:\n ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;\n}\n.json-key {\n color: var(--dt-json-key);\n}\n.json-string {\n color: var(--dt-json-string);\n}\n.json-number {\n color: var(--dt-json-number);\n}\n.json-boolean {\n color: var(--dt-json-boolean);\n}\n.json-null {\n color: var(--dt-json-null);\n}\n.json-tag {\n color: var(--dt-json-tag);\n margin-right: 4px;\n}\n.json-preview {\n color: var(--dt-json-preview);\n}\n.json-arrow {\n color: var(--dt-json-arrow);\n width: 10px;\n height: 10px;\n user-select: none;\n}\n\n/* Diff */\n.diff-changed {\n background-color: rgba(116, 199, 236, 0.06);\n}\n.diff-dot {\n position: absolute;\n left: 3px;\n width: 5px;\n height: 5px;\n border-radius: 9999px;\n background-color: var(--dt-diff-changed);\n}\n.diff-dot-inline {\n width: 5px;\n height: 5px;\n border-radius: 9999px;\n background-color: var(--dt-diff-changed);\n flex-shrink: 0;\n}\n.dot-column {\n width: 5px;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.pause-column {\n width: 8px;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.dt-pause-icon {\n width: 8px;\n height: 8px;\n color: var(--dt-paused);\n}\n\n/* Interaction blocker \u2014 covers the app while time-travelling */\n.dt-interaction-blocker {\n position: fixed;\n inset: 0;\n z-index: 99997;\n cursor: not-allowed;\n}\n\n/* Scrubber */\n.dt-scrubber-row {\n background-color: var(--dt-bg);\n}\n.dt-scrubber-control {\n position: relative;\n height: 16px;\n width: 100%;\n padding: 0 7px;\n display: flex;\n align-items: center;\n}\n.dt-scrubber-track {\n width: 100%;\n height: 4px;\n background-color: var(--dt-border);\n border-radius: 9999px;\n cursor: pointer;\n}\n.dt-scrubber-track[data-disabled] {\n cursor: not-allowed;\n}\n.dt-scrubber-fill {\n height: 100%;\n background-color: var(--dt-accent);\n border-radius: 9999px;\n}\n.dt-scrubber-thumb {\n width: 14px;\n height: 14px;\n border-radius: 9999px;\n background-color: var(--dt-accent);\n border: 2px solid var(--dt-bg);\n cursor: grab;\n outline: none;\n top: 50%;\n margin-top: -7px;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);\n}\n.dt-scrubber-thumb:focus-visible {\n outline: 2px solid var(--dt-text);\n outline-offset: 2px;\n}\n.dt-scrubber-thumb[data-dragging] {\n cursor: grabbing;\n}\n.dt-scrubber-position {\n width: 72px;\n padding-left: 12px;\n border-left: 1px solid var(--dt-border);\n align-self: stretch;\n margin-top: -8px;\n margin-bottom: -8px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* Mobile */\n@media (max-width: 767px) {\n .dt-panel {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n border-radius: 0;\n border: none;\n }\n .dt-panel-wide {\n width: 100%;\n }\n .dt-content {\n flex-direction: column;\n }\n .dt-message-pane {\n width: 100%;\n max-height: 40%;\n border-bottom: 1px solid var(--dt-border);\n }\n .message-list > :last-child {\n border-bottom: none;\n }\n .dt-inspector-pane {\n border-left: none;\n }\n .dt-badge.dt-pos-br,\n .dt-badge.dt-pos-bl {\n bottom: 44px;\n }\n}\n";
2
- export { overlayStyles };
3
- //# sourceMappingURL=overlay-styles.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"overlay-styles.d.ts","sourceRoot":"","sources":["../../src/devTools/overlay-styles.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,aAAa,g1YAgsBlB,CAAA;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}