waitroom 0.0.2 → 0.0.4

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 (82) hide show
  1. package/README.md +6 -2
  2. package/dist/chunk-AZLIYPUH.cjs +21 -0
  3. package/dist/chunk-AZLIYPUH.cjs.map +1 -0
  4. package/dist/chunk-BKJUX4QZ.cjs +35 -0
  5. package/dist/chunk-BKJUX4QZ.cjs.map +1 -0
  6. package/dist/chunk-E65B4JXD.js +29 -0
  7. package/dist/chunk-E65B4JXD.js.map +1 -0
  8. package/dist/chunk-LJI7AZCU.cjs +26 -0
  9. package/dist/chunk-LJI7AZCU.cjs.map +1 -0
  10. package/dist/chunk-QCUGY6QP.cjs +32 -0
  11. package/dist/chunk-QCUGY6QP.cjs.map +1 -0
  12. package/dist/chunk-QZGDSWJR.js +32 -0
  13. package/dist/chunk-QZGDSWJR.js.map +1 -0
  14. package/dist/chunk-URK3T7DD.js +23 -0
  15. package/dist/chunk-URK3T7DD.js.map +1 -0
  16. package/dist/{chunk-R5V2UBE7.js → chunk-VC7NQP2Z.js} +34 -35
  17. package/dist/chunk-VC7NQP2Z.js.map +1 -0
  18. package/dist/chunk-XQBPCXUN.js +19 -0
  19. package/dist/chunk-XQBPCXUN.js.map +1 -0
  20. package/dist/{chunk-5AUPIR2C.cjs → chunk-ZRR5SKZV.cjs} +34 -35
  21. package/dist/chunk-ZRR5SKZV.cjs.map +1 -0
  22. package/dist/core/index.d.cts +3 -3
  23. package/dist/core/index.d.ts +3 -3
  24. package/dist/doodle/basic-canvas.d.cts +1 -1
  25. package/dist/doodle/basic-canvas.d.ts +1 -1
  26. package/dist/doodle/index.d.cts +1 -1
  27. package/dist/doodle/index.d.ts +1 -1
  28. package/dist/{engine-DdHCpfbk.d.cts → engine-2P2WUZIs.d.cts} +1 -1
  29. package/dist/{engine--hGQ4LNR.d.ts → engine-D9HeZqt0.d.ts} +1 -1
  30. package/dist/facts/base-renderer.cjs +13 -0
  31. package/dist/facts/base-renderer.cjs.map +1 -0
  32. package/dist/facts/base-renderer.d.cts +18 -0
  33. package/dist/facts/base-renderer.d.ts +18 -0
  34. package/dist/facts/base-renderer.js +4 -0
  35. package/dist/facts/base-renderer.js.map +1 -0
  36. package/dist/facts/dev-tips.cjs +7 -2
  37. package/dist/facts/dev-tips.d.cts +3 -2
  38. package/dist/facts/dev-tips.d.ts +3 -2
  39. package/dist/facts/dev-tips.js +2 -1
  40. package/dist/facts/index.cjs +25 -7
  41. package/dist/facts/index.d.cts +5 -4
  42. package/dist/facts/index.d.ts +5 -4
  43. package/dist/facts/index.js +5 -3
  44. package/dist/facts/programming-trivia.cjs +7 -2
  45. package/dist/facts/programming-trivia.d.cts +3 -2
  46. package/dist/facts/programming-trivia.d.ts +3 -2
  47. package/dist/facts/programming-trivia.js +2 -1
  48. package/dist/facts/randomizer.cjs +17 -0
  49. package/dist/facts/randomizer.cjs.map +1 -0
  50. package/dist/facts/randomizer.d.cts +5 -0
  51. package/dist/facts/randomizer.d.ts +5 -0
  52. package/dist/facts/randomizer.js +8 -0
  53. package/dist/facts/randomizer.js.map +1 -0
  54. package/dist/facts/tech-stats.cjs +7 -2
  55. package/dist/facts/tech-stats.d.cts +3 -2
  56. package/dist/facts/tech-stats.d.ts +3 -2
  57. package/dist/facts/tech-stats.js +2 -1
  58. package/dist/games/click-counter.d.cts +1 -1
  59. package/dist/games/click-counter.d.ts +1 -1
  60. package/dist/games/index.d.cts +1 -1
  61. package/dist/games/index.d.ts +1 -1
  62. package/dist/games/memory.d.cts +1 -1
  63. package/dist/games/memory.d.ts +1 -1
  64. package/dist/games/snake.d.cts +1 -1
  65. package/dist/games/snake.d.ts +1 -1
  66. package/dist/index.d.cts +2 -2
  67. package/dist/index.d.ts +2 -2
  68. package/dist/react/index.d.cts +2 -2
  69. package/dist/react/index.d.ts +2 -2
  70. package/dist/{types-vBwPFyxq.d.cts → types-C3ZW56W1.d.cts} +1 -0
  71. package/dist/{types-vBwPFyxq.d.ts → types-C3ZW56W1.d.ts} +1 -0
  72. package/package.json +16 -1
  73. package/dist/chunk-5AUPIR2C.cjs.map +0 -1
  74. package/dist/chunk-DEQZY4AM.js +0 -58
  75. package/dist/chunk-DEQZY4AM.js.map +0 -1
  76. package/dist/chunk-MMNQMDV3.js +0 -39
  77. package/dist/chunk-MMNQMDV3.js.map +0 -1
  78. package/dist/chunk-PKRYY3X6.cjs +0 -60
  79. package/dist/chunk-PKRYY3X6.cjs.map +0 -1
  80. package/dist/chunk-R5V2UBE7.js.map +0 -1
  81. package/dist/chunk-V4RO47V6.cjs +0 -41
  82. package/dist/chunk-V4RO47V6.cjs.map +0 -1
package/README.md CHANGED
@@ -2,9 +2,13 @@
2
2
 
3
3
  Transform dead loading time into engaging micro-interactions.
4
4
 
5
- Demo:
5
+ Built by <a href="https://launch.hypeliv.com">Hypeliv</a>
6
6
 
7
- <video src="https://hypeliv-assets.s3.ap-south-1.amazonaws.com/waitroom_demo.mp4" width="100%" controls autoplay loop></video>
7
+ <a href="https://github.com/sarcastic-verma/waitroom">Github link</a>
8
+
9
+ <a href="https://hypeliv-assets.s3.ap-south-1.amazonaws.com/waitroom_demo.mp4">
10
+ Demo Video
11
+ </a>
8
12
 
9
13
  ## Installation
10
14
 
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var chunkLJI7AZCU_cjs = require('./chunk-LJI7AZCU.cjs');
4
+ var chunkQCUGY6QP_cjs = require('./chunk-QCUGY6QP.cjs');
5
+ var chunkBKJUX4QZ_cjs = require('./chunk-BKJUX4QZ.cjs');
6
+ var chunkZRR5SKZV_cjs = require('./chunk-ZRR5SKZV.cjs');
7
+
8
+ // src/facts/randomizer.ts
9
+ var ALL_FACTS = [...chunkQCUGY6QP_cjs.TIPS, ...chunkBKJUX4QZ_cjs.TRIVIA, ...chunkLJI7AZCU_cjs.STATS];
10
+ var FactRandomizer = {
11
+ id: "fact-randomizer",
12
+ name: "Random Facts",
13
+ category: "all",
14
+ facts: ALL_FACTS,
15
+ renderMini: (c, cfg) => new chunkZRR5SKZV_cjs.BaseFactsRenderer(c, ALL_FACTS, { ...cfg, shuffle: true }),
16
+ renderFull: (c, cfg) => new chunkZRR5SKZV_cjs.BaseFactsRenderer(c, ALL_FACTS, { ...cfg, shuffle: true })
17
+ };
18
+
19
+ exports.FactRandomizer = FactRandomizer;
20
+ //# sourceMappingURL=chunk-AZLIYPUH.cjs.map
21
+ //# sourceMappingURL=chunk-AZLIYPUH.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/facts/randomizer.ts"],"names":["TIPS","TRIVIA","STATS","BaseFactsRenderer"],"mappings":";;;;;;;;AAMA,IAAM,YAAoB,CAAC,GAAGA,wBAAM,GAAGC,wBAAA,EAAQ,GAAGC,uBAAK,CAAA;AAEhD,IAAM,cAAA,GAA8B;AAAA,EACzC,EAAA,EAAI,iBAAA;AAAA,EACJ,IAAA,EAAM,cAAA;AAAA,EACN,QAAA,EAAU,KAAA;AAAA,EACV,KAAA,EAAO,SAAA;AAAA,EACP,UAAA,EAAY,CAAC,CAAA,EAAG,GAAA,KACd,IAAIC,mCAAA,CAAkB,CAAA,EAAG,SAAA,EAAW,EAAE,GAAG,GAAA,EAAK,OAAA,EAAS,MAAM,CAAA;AAAA,EAC/D,UAAA,EAAY,CAAC,CAAA,EAAG,GAAA,KACd,IAAIA,mCAAA,CAAkB,CAAA,EAAG,SAAA,EAAW,EAAE,GAAG,GAAA,EAAK,OAAA,EAAS,MAAM;AACjE","file":"chunk-AZLIYPUH.cjs","sourcesContent":["import { FactsPlugin, Fact } from \"../core/types\";\nimport { BaseFactsRenderer } from \"./base-renderer\";\nimport { TIPS } from \"./dev-tips\";\nimport { TRIVIA } from \"./programming-trivia\";\nimport { STATS } from \"./tech-stats\";\n\nconst ALL_FACTS: Fact[] = [...TIPS, ...TRIVIA, ...STATS];\n\nexport const FactRandomizer: FactsPlugin = {\n id: \"fact-randomizer\",\n name: \"Random Facts\",\n category: \"all\",\n facts: ALL_FACTS,\n renderMini: (c, cfg) =>\n new BaseFactsRenderer(c, ALL_FACTS, { ...cfg, shuffle: true }),\n renderFull: (c, cfg) =>\n new BaseFactsRenderer(c, ALL_FACTS, { ...cfg, shuffle: true }),\n};\n"]}
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ var chunkZRR5SKZV_cjs = require('./chunk-ZRR5SKZV.cjs');
4
+
5
+ // src/facts/programming-trivia.ts
6
+ var TRIVIA = [
7
+ {
8
+ id: "1",
9
+ text: "The first computer bug was an actual moth found in a relay",
10
+ category: "history"
11
+ },
12
+ {
13
+ id: "2",
14
+ text: "JavaScript was created in 10 days by Brendan Eich",
15
+ category: "history"
16
+ },
17
+ {
18
+ id: "3",
19
+ text: "Python is named after Monty Python, not the snake",
20
+ category: "history"
21
+ }
22
+ ];
23
+ var ProgrammingTrivia = {
24
+ id: "prog-trivia",
25
+ name: "Programming Trivia",
26
+ category: "trivia",
27
+ facts: TRIVIA,
28
+ renderMini: (c, cfg) => new chunkZRR5SKZV_cjs.BaseFactsRenderer(c, TRIVIA, cfg),
29
+ renderFull: (c, cfg) => new chunkZRR5SKZV_cjs.BaseFactsRenderer(c, TRIVIA, cfg)
30
+ };
31
+
32
+ exports.ProgrammingTrivia = ProgrammingTrivia;
33
+ exports.TRIVIA = TRIVIA;
34
+ //# sourceMappingURL=chunk-BKJUX4QZ.cjs.map
35
+ //# sourceMappingURL=chunk-BKJUX4QZ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/facts/programming-trivia.ts"],"names":["BaseFactsRenderer"],"mappings":";;;;;AAGO,IAAM,MAAA,GAAiB;AAAA,EAC5B;AAAA,IACE,EAAA,EAAI,GAAA;AAAA,IACJ,IAAA,EAAM,4DAAA;AAAA,IACN,QAAA,EAAU;AAAA,GACZ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,GAAA;AAAA,IACJ,IAAA,EAAM,mDAAA;AAAA,IACN,QAAA,EAAU;AAAA,GACZ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,GAAA;AAAA,IACJ,IAAA,EAAM,mDAAA;AAAA,IACN,QAAA,EAAU;AAAA;AAEd;AAEO,IAAM,iBAAA,GAAiC;AAAA,EAC5C,EAAA,EAAI,aAAA;AAAA,EACJ,IAAA,EAAM,oBAAA;AAAA,EACN,QAAA,EAAU,QAAA;AAAA,EACV,KAAA,EAAO,MAAA;AAAA,EACP,UAAA,EAAY,CAAC,CAAA,EAAG,GAAA,KAAQ,IAAIA,mCAAA,CAAkB,CAAA,EAAG,QAAQ,GAAG,CAAA;AAAA,EAC5D,UAAA,EAAY,CAAC,CAAA,EAAG,GAAA,KAAQ,IAAIA,mCAAA,CAAkB,CAAA,EAAG,QAAQ,GAAG;AAC9D","file":"chunk-BKJUX4QZ.cjs","sourcesContent":["import { FactsPlugin, Fact } from \"../core/types\";\nimport { BaseFactsRenderer } from \"./base-renderer\";\n\nexport const TRIVIA: Fact[] = [\n {\n id: \"1\",\n text: \"The first computer bug was an actual moth found in a relay\",\n category: \"history\",\n },\n {\n id: \"2\",\n text: \"JavaScript was created in 10 days by Brendan Eich\",\n category: \"history\",\n },\n {\n id: \"3\",\n text: \"Python is named after Monty Python, not the snake\",\n category: \"history\",\n },\n];\n\nexport const ProgrammingTrivia: FactsPlugin = {\n id: \"prog-trivia\",\n name: \"Programming Trivia\",\n category: \"trivia\",\n facts: TRIVIA,\n renderMini: (c, cfg) => new BaseFactsRenderer(c, TRIVIA, cfg),\n renderFull: (c, cfg) => new BaseFactsRenderer(c, TRIVIA, cfg),\n};\n"]}
@@ -0,0 +1,29 @@
1
+ import { BaseFactsRenderer } from './chunk-VC7NQP2Z.js';
2
+
3
+ // src/facts/dev-tips.ts
4
+ var TIPS = [
5
+ {
6
+ id: "1",
7
+ text: "Ctrl+Shift+P opens command palette in VS Code",
8
+ category: "vscode"
9
+ },
10
+ { id: "2", text: "Use git reflog to find lost commits", category: "git" },
11
+ {
12
+ id: "3",
13
+ text: "Console.table() displays data in a table format",
14
+ category: "js"
15
+ },
16
+ { id: "4", text: "Alt+Click to use multiple cursors", category: "vscode" }
17
+ ];
18
+ var DevTipsFacts = {
19
+ id: "dev-tips",
20
+ name: "Developer Tips",
21
+ category: "coding",
22
+ facts: TIPS,
23
+ renderMini: (c, cfg) => new BaseFactsRenderer(c, TIPS, cfg),
24
+ renderFull: (c, cfg) => new BaseFactsRenderer(c, TIPS, cfg)
25
+ };
26
+
27
+ export { DevTipsFacts, TIPS };
28
+ //# sourceMappingURL=chunk-E65B4JXD.js.map
29
+ //# sourceMappingURL=chunk-E65B4JXD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/facts/dev-tips.ts"],"names":[],"mappings":";;;AAGO,IAAM,IAAA,GAAe;AAAA,EAC1B;AAAA,IACE,EAAA,EAAI,GAAA;AAAA,IACJ,IAAA,EAAM,+CAAA;AAAA,IACN,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,EAAE,EAAA,EAAI,GAAA,EAAK,IAAA,EAAM,qCAAA,EAAuC,UAAU,KAAA,EAAM;AAAA,EACxE;AAAA,IACE,EAAA,EAAI,GAAA;AAAA,IACJ,IAAA,EAAM,iDAAA;AAAA,IACN,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,EAAE,EAAA,EAAI,GAAA,EAAK,IAAA,EAAM,mCAAA,EAAqC,UAAU,QAAA;AAClE;AAEO,IAAM,YAAA,GAA4B;AAAA,EACvC,EAAA,EAAI,UAAA;AAAA,EACJ,IAAA,EAAM,gBAAA;AAAA,EACN,QAAA,EAAU,QAAA;AAAA,EACV,KAAA,EAAO,IAAA;AAAA,EACP,UAAA,EAAY,CAAC,CAAA,EAAG,GAAA,KAAQ,IAAI,iBAAA,CAAkB,CAAA,EAAG,MAAM,GAAG,CAAA;AAAA,EAC1D,UAAA,EAAY,CAAC,CAAA,EAAG,GAAA,KAAQ,IAAI,iBAAA,CAAkB,CAAA,EAAG,MAAM,GAAG;AAC5D","file":"chunk-E65B4JXD.js","sourcesContent":["import { FactsPlugin, Fact } from \"../core/types\";\nimport { BaseFactsRenderer } from \"./base-renderer\";\n\nexport const TIPS: Fact[] = [\n {\n id: \"1\",\n text: \"Ctrl+Shift+P opens command palette in VS Code\",\n category: \"vscode\",\n },\n { id: \"2\", text: \"Use git reflog to find lost commits\", category: \"git\" },\n {\n id: \"3\",\n text: \"Console.table() displays data in a table format\",\n category: \"js\",\n },\n { id: \"4\", text: \"Alt+Click to use multiple cursors\", category: \"vscode\" },\n];\n\nexport const DevTipsFacts: FactsPlugin = {\n id: \"dev-tips\",\n name: \"Developer Tips\",\n category: \"coding\",\n facts: TIPS,\n renderMini: (c, cfg) => new BaseFactsRenderer(c, TIPS, cfg),\n renderFull: (c, cfg) => new BaseFactsRenderer(c, TIPS, cfg),\n};\n"]}
@@ -0,0 +1,26 @@
1
+ 'use strict';
2
+
3
+ var chunkZRR5SKZV_cjs = require('./chunk-ZRR5SKZV.cjs');
4
+
5
+ // src/facts/tech-stats.ts
6
+ var STATS = [
7
+ { id: "1", text: "JavaScript is used by 98% of websites", category: "stats" },
8
+ {
9
+ id: "2",
10
+ text: "There are over 1.3 million npm packages",
11
+ category: "stats"
12
+ }
13
+ ];
14
+ var TechStats = {
15
+ id: "tech-stats",
16
+ name: "Tech Stats",
17
+ category: "stats",
18
+ facts: STATS,
19
+ renderMini: (c, cfg) => new chunkZRR5SKZV_cjs.BaseFactsRenderer(c, STATS, cfg),
20
+ renderFull: (c, cfg) => new chunkZRR5SKZV_cjs.BaseFactsRenderer(c, STATS, cfg)
21
+ };
22
+
23
+ exports.STATS = STATS;
24
+ exports.TechStats = TechStats;
25
+ //# sourceMappingURL=chunk-LJI7AZCU.cjs.map
26
+ //# sourceMappingURL=chunk-LJI7AZCU.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/facts/tech-stats.ts"],"names":["BaseFactsRenderer"],"mappings":";;;;;AAGO,IAAM,KAAA,GAAgB;AAAA,EAC3B,EAAE,EAAA,EAAI,GAAA,EAAK,IAAA,EAAM,uCAAA,EAAyC,UAAU,OAAA,EAAQ;AAAA,EAC5E;AAAA,IACE,EAAA,EAAI,GAAA;AAAA,IACJ,IAAA,EAAM,yCAAA;AAAA,IACN,QAAA,EAAU;AAAA;AAEd;AAEO,IAAM,SAAA,GAAyB;AAAA,EACpC,EAAA,EAAI,YAAA;AAAA,EACJ,IAAA,EAAM,YAAA;AAAA,EACN,QAAA,EAAU,OAAA;AAAA,EACV,KAAA,EAAO,KAAA;AAAA,EACP,UAAA,EAAY,CAAC,CAAA,EAAG,GAAA,KAAQ,IAAIA,mCAAA,CAAkB,CAAA,EAAG,OAAO,GAAG,CAAA;AAAA,EAC3D,UAAA,EAAY,CAAC,CAAA,EAAG,GAAA,KAAQ,IAAIA,mCAAA,CAAkB,CAAA,EAAG,OAAO,GAAG;AAC7D","file":"chunk-LJI7AZCU.cjs","sourcesContent":["import { FactsPlugin, Fact } from \"../core/types\";\nimport { BaseFactsRenderer } from \"./base-renderer\";\n\nexport const STATS: Fact[] = [\n { id: \"1\", text: \"JavaScript is used by 98% of websites\", category: \"stats\" },\n {\n id: \"2\",\n text: \"There are over 1.3 million npm packages\",\n category: \"stats\",\n },\n];\n\nexport const TechStats: FactsPlugin = {\n id: \"tech-stats\",\n name: \"Tech Stats\",\n category: \"stats\",\n facts: STATS,\n renderMini: (c, cfg) => new BaseFactsRenderer(c, STATS, cfg),\n renderFull: (c, cfg) => new BaseFactsRenderer(c, STATS, cfg),\n};\n"]}
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+
3
+ var chunkZRR5SKZV_cjs = require('./chunk-ZRR5SKZV.cjs');
4
+
5
+ // src/facts/dev-tips.ts
6
+ var TIPS = [
7
+ {
8
+ id: "1",
9
+ text: "Ctrl+Shift+P opens command palette in VS Code",
10
+ category: "vscode"
11
+ },
12
+ { id: "2", text: "Use git reflog to find lost commits", category: "git" },
13
+ {
14
+ id: "3",
15
+ text: "Console.table() displays data in a table format",
16
+ category: "js"
17
+ },
18
+ { id: "4", text: "Alt+Click to use multiple cursors", category: "vscode" }
19
+ ];
20
+ var DevTipsFacts = {
21
+ id: "dev-tips",
22
+ name: "Developer Tips",
23
+ category: "coding",
24
+ facts: TIPS,
25
+ renderMini: (c, cfg) => new chunkZRR5SKZV_cjs.BaseFactsRenderer(c, TIPS, cfg),
26
+ renderFull: (c, cfg) => new chunkZRR5SKZV_cjs.BaseFactsRenderer(c, TIPS, cfg)
27
+ };
28
+
29
+ exports.DevTipsFacts = DevTipsFacts;
30
+ exports.TIPS = TIPS;
31
+ //# sourceMappingURL=chunk-QCUGY6QP.cjs.map
32
+ //# sourceMappingURL=chunk-QCUGY6QP.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/facts/dev-tips.ts"],"names":["BaseFactsRenderer"],"mappings":";;;;;AAGO,IAAM,IAAA,GAAe;AAAA,EAC1B;AAAA,IACE,EAAA,EAAI,GAAA;AAAA,IACJ,IAAA,EAAM,+CAAA;AAAA,IACN,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,EAAE,EAAA,EAAI,GAAA,EAAK,IAAA,EAAM,qCAAA,EAAuC,UAAU,KAAA,EAAM;AAAA,EACxE;AAAA,IACE,EAAA,EAAI,GAAA;AAAA,IACJ,IAAA,EAAM,iDAAA;AAAA,IACN,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,EAAE,EAAA,EAAI,GAAA,EAAK,IAAA,EAAM,mCAAA,EAAqC,UAAU,QAAA;AAClE;AAEO,IAAM,YAAA,GAA4B;AAAA,EACvC,EAAA,EAAI,UAAA;AAAA,EACJ,IAAA,EAAM,gBAAA;AAAA,EACN,QAAA,EAAU,QAAA;AAAA,EACV,KAAA,EAAO,IAAA;AAAA,EACP,UAAA,EAAY,CAAC,CAAA,EAAG,GAAA,KAAQ,IAAIA,mCAAA,CAAkB,CAAA,EAAG,MAAM,GAAG,CAAA;AAAA,EAC1D,UAAA,EAAY,CAAC,CAAA,EAAG,GAAA,KAAQ,IAAIA,mCAAA,CAAkB,CAAA,EAAG,MAAM,GAAG;AAC5D","file":"chunk-QCUGY6QP.cjs","sourcesContent":["import { FactsPlugin, Fact } from \"../core/types\";\nimport { BaseFactsRenderer } from \"./base-renderer\";\n\nexport const TIPS: Fact[] = [\n {\n id: \"1\",\n text: \"Ctrl+Shift+P opens command palette in VS Code\",\n category: \"vscode\",\n },\n { id: \"2\", text: \"Use git reflog to find lost commits\", category: \"git\" },\n {\n id: \"3\",\n text: \"Console.table() displays data in a table format\",\n category: \"js\",\n },\n { id: \"4\", text: \"Alt+Click to use multiple cursors\", category: \"vscode\" },\n];\n\nexport const DevTipsFacts: FactsPlugin = {\n id: \"dev-tips\",\n name: \"Developer Tips\",\n category: \"coding\",\n facts: TIPS,\n renderMini: (c, cfg) => new BaseFactsRenderer(c, TIPS, cfg),\n renderFull: (c, cfg) => new BaseFactsRenderer(c, TIPS, cfg),\n};\n"]}
@@ -0,0 +1,32 @@
1
+ import { BaseFactsRenderer } from './chunk-VC7NQP2Z.js';
2
+
3
+ // src/facts/programming-trivia.ts
4
+ var TRIVIA = [
5
+ {
6
+ id: "1",
7
+ text: "The first computer bug was an actual moth found in a relay",
8
+ category: "history"
9
+ },
10
+ {
11
+ id: "2",
12
+ text: "JavaScript was created in 10 days by Brendan Eich",
13
+ category: "history"
14
+ },
15
+ {
16
+ id: "3",
17
+ text: "Python is named after Monty Python, not the snake",
18
+ category: "history"
19
+ }
20
+ ];
21
+ var ProgrammingTrivia = {
22
+ id: "prog-trivia",
23
+ name: "Programming Trivia",
24
+ category: "trivia",
25
+ facts: TRIVIA,
26
+ renderMini: (c, cfg) => new BaseFactsRenderer(c, TRIVIA, cfg),
27
+ renderFull: (c, cfg) => new BaseFactsRenderer(c, TRIVIA, cfg)
28
+ };
29
+
30
+ export { ProgrammingTrivia, TRIVIA };
31
+ //# sourceMappingURL=chunk-QZGDSWJR.js.map
32
+ //# sourceMappingURL=chunk-QZGDSWJR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/facts/programming-trivia.ts"],"names":[],"mappings":";;;AAGO,IAAM,MAAA,GAAiB;AAAA,EAC5B;AAAA,IACE,EAAA,EAAI,GAAA;AAAA,IACJ,IAAA,EAAM,4DAAA;AAAA,IACN,QAAA,EAAU;AAAA,GACZ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,GAAA;AAAA,IACJ,IAAA,EAAM,mDAAA;AAAA,IACN,QAAA,EAAU;AAAA,GACZ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,GAAA;AAAA,IACJ,IAAA,EAAM,mDAAA;AAAA,IACN,QAAA,EAAU;AAAA;AAEd;AAEO,IAAM,iBAAA,GAAiC;AAAA,EAC5C,EAAA,EAAI,aAAA;AAAA,EACJ,IAAA,EAAM,oBAAA;AAAA,EACN,QAAA,EAAU,QAAA;AAAA,EACV,KAAA,EAAO,MAAA;AAAA,EACP,UAAA,EAAY,CAAC,CAAA,EAAG,GAAA,KAAQ,IAAI,iBAAA,CAAkB,CAAA,EAAG,QAAQ,GAAG,CAAA;AAAA,EAC5D,UAAA,EAAY,CAAC,CAAA,EAAG,GAAA,KAAQ,IAAI,iBAAA,CAAkB,CAAA,EAAG,QAAQ,GAAG;AAC9D","file":"chunk-QZGDSWJR.js","sourcesContent":["import { FactsPlugin, Fact } from \"../core/types\";\nimport { BaseFactsRenderer } from \"./base-renderer\";\n\nexport const TRIVIA: Fact[] = [\n {\n id: \"1\",\n text: \"The first computer bug was an actual moth found in a relay\",\n category: \"history\",\n },\n {\n id: \"2\",\n text: \"JavaScript was created in 10 days by Brendan Eich\",\n category: \"history\",\n },\n {\n id: \"3\",\n text: \"Python is named after Monty Python, not the snake\",\n category: \"history\",\n },\n];\n\nexport const ProgrammingTrivia: FactsPlugin = {\n id: \"prog-trivia\",\n name: \"Programming Trivia\",\n category: \"trivia\",\n facts: TRIVIA,\n renderMini: (c, cfg) => new BaseFactsRenderer(c, TRIVIA, cfg),\n renderFull: (c, cfg) => new BaseFactsRenderer(c, TRIVIA, cfg),\n};\n"]}
@@ -0,0 +1,23 @@
1
+ import { BaseFactsRenderer } from './chunk-VC7NQP2Z.js';
2
+
3
+ // src/facts/tech-stats.ts
4
+ var STATS = [
5
+ { id: "1", text: "JavaScript is used by 98% of websites", category: "stats" },
6
+ {
7
+ id: "2",
8
+ text: "There are over 1.3 million npm packages",
9
+ category: "stats"
10
+ }
11
+ ];
12
+ var TechStats = {
13
+ id: "tech-stats",
14
+ name: "Tech Stats",
15
+ category: "stats",
16
+ facts: STATS,
17
+ renderMini: (c, cfg) => new BaseFactsRenderer(c, STATS, cfg),
18
+ renderFull: (c, cfg) => new BaseFactsRenderer(c, STATS, cfg)
19
+ };
20
+
21
+ export { STATS, TechStats };
22
+ //# sourceMappingURL=chunk-URK3T7DD.js.map
23
+ //# sourceMappingURL=chunk-URK3T7DD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/facts/tech-stats.ts"],"names":[],"mappings":";;;AAGO,IAAM,KAAA,GAAgB;AAAA,EAC3B,EAAE,EAAA,EAAI,GAAA,EAAK,IAAA,EAAM,uCAAA,EAAyC,UAAU,OAAA,EAAQ;AAAA,EAC5E;AAAA,IACE,EAAA,EAAI,GAAA;AAAA,IACJ,IAAA,EAAM,yCAAA;AAAA,IACN,QAAA,EAAU;AAAA;AAEd;AAEO,IAAM,SAAA,GAAyB;AAAA,EACpC,EAAA,EAAI,YAAA;AAAA,EACJ,IAAA,EAAM,YAAA;AAAA,EACN,QAAA,EAAU,OAAA;AAAA,EACV,KAAA,EAAO,KAAA;AAAA,EACP,UAAA,EAAY,CAAC,CAAA,EAAG,GAAA,KAAQ,IAAI,iBAAA,CAAkB,CAAA,EAAG,OAAO,GAAG,CAAA;AAAA,EAC3D,UAAA,EAAY,CAAC,CAAA,EAAG,GAAA,KAAQ,IAAI,iBAAA,CAAkB,CAAA,EAAG,OAAO,GAAG;AAC7D","file":"chunk-URK3T7DD.js","sourcesContent":["import { FactsPlugin, Fact } from \"../core/types\";\nimport { BaseFactsRenderer } from \"./base-renderer\";\n\nexport const STATS: Fact[] = [\n { id: \"1\", text: \"JavaScript is used by 98% of websites\", category: \"stats\" },\n {\n id: \"2\",\n text: \"There are over 1.3 million npm packages\",\n category: \"stats\",\n },\n];\n\nexport const TechStats: FactsPlugin = {\n id: \"tech-stats\",\n name: \"Tech Stats\",\n category: \"stats\",\n facts: STATS,\n renderMini: (c, cfg) => new BaseFactsRenderer(c, STATS, cfg),\n renderFull: (c, cfg) => new BaseFactsRenderer(c, STATS, cfg),\n};\n"]}
@@ -1,21 +1,7 @@
1
1
  import { __publicField } from './chunk-V6TY7KAL.js';
2
2
 
3
- // src/facts/dev-tips.ts
4
- var TIPS = [
5
- {
6
- id: "1",
7
- text: "Ctrl+Shift+P opens command palette in VS Code",
8
- category: "vscode"
9
- },
10
- { id: "2", text: "Use git reflog to find lost commits", category: "git" },
11
- {
12
- id: "3",
13
- text: "Console.table() displays data in a table format",
14
- category: "js"
15
- },
16
- { id: "4", text: "Alt+Click to use multiple cursors", category: "vscode" }
17
- ];
18
- var SimpleFactsRenderer = class {
3
+ // src/facts/base-renderer.ts
4
+ var BaseFactsRenderer = class {
19
5
  constructor(container, facts, config) {
20
6
  __publicField(this, "container");
21
7
  __publicField(this, "facts");
@@ -31,22 +17,28 @@ var SimpleFactsRenderer = class {
31
17
  this.container.style.justifyContent = "center";
32
18
  this.container.style.padding = "20px";
33
19
  this.container.style.textAlign = "center";
20
+ if (this.config.shuffle) {
21
+ this.currentIndex = Math.floor(Math.random() * this.facts.length);
22
+ }
34
23
  this.showCurrent();
35
24
  this.startRotation();
36
25
  }
37
26
  showCurrent() {
27
+ if (this.facts.length === 0) return;
38
28
  const fact = this.facts[this.currentIndex];
39
29
  this.container.innerHTML = `
40
- <div style="font-weight: bold; margin-bottom: 8px;">Tip #${this.currentIndex + 1}</div>
41
- <div style="font-size: 1.1em;">${fact.text}</div>
42
- ${fact.category ? `<div style="font-size: 0.8em; color: #888; margin-top: 5px;">${fact.category}</div>` : ""}
30
+ <div style="font-weight: bold; margin-bottom: 8px;">Fact #${this.currentIndex + 1}</div>
31
+ <div style="font-size: 1.1em; line-height: 1.4;">${fact.text}</div>
32
+ ${fact.category ? `<div style="font-size: 0.8em; color: #888; margin-top: 8px; text-transform: uppercase; letter-spacing: 1px;">${fact.category}</div>` : ""}
43
33
  `;
44
34
  const timerBar = document.createElement("div");
45
35
  timerBar.style.width = "0%";
46
36
  timerBar.style.height = "2px";
47
37
  timerBar.style.background = "#22c55e";
48
- timerBar.style.marginTop = "10px";
49
- timerBar.style.transition = `width ${this.config.rotationInterval || 4e3}ms linear`;
38
+ timerBar.style.marginTop = "15px";
39
+ timerBar.style.borderRadius = "2px";
40
+ const interval = this.config.rotationInterval || 4e3;
41
+ timerBar.style.transition = `width ${interval}ms linear`;
50
42
  void this.container.offsetWidth;
51
43
  this.container.appendChild(timerBar);
52
44
  requestAnimationFrame(() => {
@@ -55,34 +47,41 @@ var SimpleFactsRenderer = class {
55
47
  }
56
48
  startRotation() {
57
49
  if (this.timer) clearInterval(this.timer);
50
+ if (this.facts.length <= 1) return;
58
51
  const interval = this.config.rotationInterval || 4e3;
59
52
  this.timer = setInterval(() => this.next(), interval);
60
53
  }
61
54
  next() {
62
- this.currentIndex = (this.currentIndex + 1) % this.facts.length;
55
+ if (this.facts.length <= 1) return;
56
+ if (this.config.shuffle) {
57
+ let nextIndex = this.currentIndex;
58
+ while (nextIndex === this.currentIndex && this.facts.length > 1) {
59
+ nextIndex = Math.floor(Math.random() * this.facts.length);
60
+ }
61
+ this.currentIndex = nextIndex;
62
+ } else {
63
+ this.currentIndex = (this.currentIndex + 1) % this.facts.length;
64
+ }
63
65
  this.showCurrent();
64
66
  }
65
67
  previous() {
66
- this.currentIndex = (this.currentIndex - 1 + this.facts.length) % this.facts.length;
68
+ if (this.facts.length <= 1) return;
69
+ if (this.config.shuffle) {
70
+ this.next();
71
+ } else {
72
+ this.currentIndex = (this.currentIndex - 1 + this.facts.length) % this.facts.length;
73
+ }
67
74
  this.showCurrent();
68
75
  }
69
76
  favorite(id) {
70
- console.log("Fav:", id);
77
+ console.log("Fact favorited:", id);
71
78
  }
72
79
  destroy() {
73
80
  if (this.timer) clearInterval(this.timer);
74
81
  this.container.innerHTML = "";
75
82
  }
76
83
  };
77
- var DevTipsFacts = {
78
- id: "dev-tips",
79
- name: "Developer Tips",
80
- category: "coding",
81
- facts: TIPS,
82
- renderMini: (c, cfg) => new SimpleFactsRenderer(c, TIPS, cfg),
83
- renderFull: (c, cfg) => new SimpleFactsRenderer(c, TIPS, cfg)
84
- };
85
84
 
86
- export { DevTipsFacts };
87
- //# sourceMappingURL=chunk-R5V2UBE7.js.map
88
- //# sourceMappingURL=chunk-R5V2UBE7.js.map
85
+ export { BaseFactsRenderer };
86
+ //# sourceMappingURL=chunk-VC7NQP2Z.js.map
87
+ //# sourceMappingURL=chunk-VC7NQP2Z.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/facts/base-renderer.ts"],"names":[],"mappings":"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","file":"chunk-VC7NQP2Z.js","sourcesContent":["import { FactsInstance, Fact, FactsConfig } from \"../core/types\";\n\nexport class BaseFactsRenderer implements FactsInstance {\n private container: HTMLElement;\n private facts: Fact[];\n private currentIndex = 0;\n private timer: any;\n private config: FactsConfig;\n\n constructor(container: HTMLElement, facts: Fact[], config?: FactsConfig) {\n this.container = container;\n this.facts = facts;\n this.config = config || {};\n\n this.container.style.display = \"flex\";\n this.container.style.flexDirection = \"column\";\n this.container.style.alignItems = \"center\";\n this.container.style.justifyContent = \"center\";\n this.container.style.padding = \"20px\";\n this.container.style.textAlign = \"center\";\n\n if (this.config.shuffle) {\n this.currentIndex = Math.floor(Math.random() * this.facts.length);\n }\n\n this.showCurrent();\n this.startRotation();\n }\n\n private showCurrent() {\n if (this.facts.length === 0) return;\n\n const fact = this.facts[this.currentIndex];\n this.container.innerHTML = `\n <div style=\"font-weight: bold; margin-bottom: 8px;\">Fact #${\n this.currentIndex + 1\n }</div>\n <div style=\"font-size: 1.1em; line-height: 1.4;\">${fact.text}</div>\n ${\n fact.category\n ? `<div style=\"font-size: 0.8em; color: #888; margin-top: 8px; text-transform: uppercase; letter-spacing: 1px;\">${fact.category}</div>`\n : \"\"\n }\n `;\n\n // Add timer bar\n const timerBar = document.createElement(\"div\");\n timerBar.style.width = \"0%\";\n timerBar.style.height = \"2px\";\n timerBar.style.background = \"#22c55e\"; // Green progress\n timerBar.style.marginTop = \"15px\";\n timerBar.style.borderRadius = \"2px\";\n const interval = this.config.rotationInterval || 4000;\n timerBar.style.transition = `width ${interval}ms linear`;\n\n // Force reflow\n void this.container.offsetWidth;\n\n this.container.appendChild(timerBar);\n\n // Trigger animation\n requestAnimationFrame(() => {\n timerBar.style.width = \"100%\";\n });\n }\n\n private startRotation() {\n if (this.timer) clearInterval(this.timer);\n if (this.facts.length <= 1) return;\n\n const interval = this.config.rotationInterval || 4000;\n this.timer = setInterval(() => this.next(), interval);\n }\n\n next() {\n if (this.facts.length <= 1) return;\n\n if (this.config.shuffle) {\n let nextIndex = this.currentIndex;\n while (nextIndex === this.currentIndex && this.facts.length > 1) {\n nextIndex = Math.floor(Math.random() * this.facts.length);\n }\n this.currentIndex = nextIndex;\n } else {\n this.currentIndex = (this.currentIndex + 1) % this.facts.length;\n }\n this.showCurrent();\n }\n\n previous() {\n if (this.facts.length <= 1) return;\n\n if (this.config.shuffle) {\n this.next(); // For shuffle, previous is just another random one\n } else {\n this.currentIndex =\n (this.currentIndex - 1 + this.facts.length) % this.facts.length;\n }\n this.showCurrent();\n }\n\n favorite(id: string) {\n console.log(\"Fact favorited:\", id);\n }\n\n destroy() {\n if (this.timer) clearInterval(this.timer);\n this.container.innerHTML = \"\";\n }\n}\n"]}
@@ -0,0 +1,19 @@
1
+ import { STATS } from './chunk-URK3T7DD.js';
2
+ import { TIPS } from './chunk-E65B4JXD.js';
3
+ import { TRIVIA } from './chunk-QZGDSWJR.js';
4
+ import { BaseFactsRenderer } from './chunk-VC7NQP2Z.js';
5
+
6
+ // src/facts/randomizer.ts
7
+ var ALL_FACTS = [...TIPS, ...TRIVIA, ...STATS];
8
+ var FactRandomizer = {
9
+ id: "fact-randomizer",
10
+ name: "Random Facts",
11
+ category: "all",
12
+ facts: ALL_FACTS,
13
+ renderMini: (c, cfg) => new BaseFactsRenderer(c, ALL_FACTS, { ...cfg, shuffle: true }),
14
+ renderFull: (c, cfg) => new BaseFactsRenderer(c, ALL_FACTS, { ...cfg, shuffle: true })
15
+ };
16
+
17
+ export { FactRandomizer };
18
+ //# sourceMappingURL=chunk-XQBPCXUN.js.map
19
+ //# sourceMappingURL=chunk-XQBPCXUN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/facts/randomizer.ts"],"names":[],"mappings":";;;;;;AAMA,IAAM,YAAoB,CAAC,GAAG,MAAM,GAAG,MAAA,EAAQ,GAAG,KAAK,CAAA;AAEhD,IAAM,cAAA,GAA8B;AAAA,EACzC,EAAA,EAAI,iBAAA;AAAA,EACJ,IAAA,EAAM,cAAA;AAAA,EACN,QAAA,EAAU,KAAA;AAAA,EACV,KAAA,EAAO,SAAA;AAAA,EACP,UAAA,EAAY,CAAC,CAAA,EAAG,GAAA,KACd,IAAI,iBAAA,CAAkB,CAAA,EAAG,SAAA,EAAW,EAAE,GAAG,GAAA,EAAK,OAAA,EAAS,MAAM,CAAA;AAAA,EAC/D,UAAA,EAAY,CAAC,CAAA,EAAG,GAAA,KACd,IAAI,iBAAA,CAAkB,CAAA,EAAG,SAAA,EAAW,EAAE,GAAG,GAAA,EAAK,OAAA,EAAS,MAAM;AACjE","file":"chunk-XQBPCXUN.js","sourcesContent":["import { FactsPlugin, Fact } from \"../core/types\";\nimport { BaseFactsRenderer } from \"./base-renderer\";\nimport { TIPS } from \"./dev-tips\";\nimport { TRIVIA } from \"./programming-trivia\";\nimport { STATS } from \"./tech-stats\";\n\nconst ALL_FACTS: Fact[] = [...TIPS, ...TRIVIA, ...STATS];\n\nexport const FactRandomizer: FactsPlugin = {\n id: \"fact-randomizer\",\n name: \"Random Facts\",\n category: \"all\",\n facts: ALL_FACTS,\n renderMini: (c, cfg) =>\n new BaseFactsRenderer(c, ALL_FACTS, { ...cfg, shuffle: true }),\n renderFull: (c, cfg) =>\n new BaseFactsRenderer(c, ALL_FACTS, { ...cfg, shuffle: true }),\n};\n"]}
@@ -2,22 +2,8 @@
2
2
 
3
3
  var chunk4DE2IREA_cjs = require('./chunk-4DE2IREA.cjs');
4
4
 
5
- // src/facts/dev-tips.ts
6
- var TIPS = [
7
- {
8
- id: "1",
9
- text: "Ctrl+Shift+P opens command palette in VS Code",
10
- category: "vscode"
11
- },
12
- { id: "2", text: "Use git reflog to find lost commits", category: "git" },
13
- {
14
- id: "3",
15
- text: "Console.table() displays data in a table format",
16
- category: "js"
17
- },
18
- { id: "4", text: "Alt+Click to use multiple cursors", category: "vscode" }
19
- ];
20
- var SimpleFactsRenderer = class {
5
+ // src/facts/base-renderer.ts
6
+ var BaseFactsRenderer = class {
21
7
  constructor(container, facts, config) {
22
8
  chunk4DE2IREA_cjs.__publicField(this, "container");
23
9
  chunk4DE2IREA_cjs.__publicField(this, "facts");
@@ -33,22 +19,28 @@ var SimpleFactsRenderer = class {
33
19
  this.container.style.justifyContent = "center";
34
20
  this.container.style.padding = "20px";
35
21
  this.container.style.textAlign = "center";
22
+ if (this.config.shuffle) {
23
+ this.currentIndex = Math.floor(Math.random() * this.facts.length);
24
+ }
36
25
  this.showCurrent();
37
26
  this.startRotation();
38
27
  }
39
28
  showCurrent() {
29
+ if (this.facts.length === 0) return;
40
30
  const fact = this.facts[this.currentIndex];
41
31
  this.container.innerHTML = `
42
- <div style="font-weight: bold; margin-bottom: 8px;">Tip #${this.currentIndex + 1}</div>
43
- <div style="font-size: 1.1em;">${fact.text}</div>
44
- ${fact.category ? `<div style="font-size: 0.8em; color: #888; margin-top: 5px;">${fact.category}</div>` : ""}
32
+ <div style="font-weight: bold; margin-bottom: 8px;">Fact #${this.currentIndex + 1}</div>
33
+ <div style="font-size: 1.1em; line-height: 1.4;">${fact.text}</div>
34
+ ${fact.category ? `<div style="font-size: 0.8em; color: #888; margin-top: 8px; text-transform: uppercase; letter-spacing: 1px;">${fact.category}</div>` : ""}
45
35
  `;
46
36
  const timerBar = document.createElement("div");
47
37
  timerBar.style.width = "0%";
48
38
  timerBar.style.height = "2px";
49
39
  timerBar.style.background = "#22c55e";
50
- timerBar.style.marginTop = "10px";
51
- timerBar.style.transition = `width ${this.config.rotationInterval || 4e3}ms linear`;
40
+ timerBar.style.marginTop = "15px";
41
+ timerBar.style.borderRadius = "2px";
42
+ const interval = this.config.rotationInterval || 4e3;
43
+ timerBar.style.transition = `width ${interval}ms linear`;
52
44
  void this.container.offsetWidth;
53
45
  this.container.appendChild(timerBar);
54
46
  requestAnimationFrame(() => {
@@ -57,34 +49,41 @@ var SimpleFactsRenderer = class {
57
49
  }
58
50
  startRotation() {
59
51
  if (this.timer) clearInterval(this.timer);
52
+ if (this.facts.length <= 1) return;
60
53
  const interval = this.config.rotationInterval || 4e3;
61
54
  this.timer = setInterval(() => this.next(), interval);
62
55
  }
63
56
  next() {
64
- this.currentIndex = (this.currentIndex + 1) % this.facts.length;
57
+ if (this.facts.length <= 1) return;
58
+ if (this.config.shuffle) {
59
+ let nextIndex = this.currentIndex;
60
+ while (nextIndex === this.currentIndex && this.facts.length > 1) {
61
+ nextIndex = Math.floor(Math.random() * this.facts.length);
62
+ }
63
+ this.currentIndex = nextIndex;
64
+ } else {
65
+ this.currentIndex = (this.currentIndex + 1) % this.facts.length;
66
+ }
65
67
  this.showCurrent();
66
68
  }
67
69
  previous() {
68
- this.currentIndex = (this.currentIndex - 1 + this.facts.length) % this.facts.length;
70
+ if (this.facts.length <= 1) return;
71
+ if (this.config.shuffle) {
72
+ this.next();
73
+ } else {
74
+ this.currentIndex = (this.currentIndex - 1 + this.facts.length) % this.facts.length;
75
+ }
69
76
  this.showCurrent();
70
77
  }
71
78
  favorite(id) {
72
- console.log("Fav:", id);
79
+ console.log("Fact favorited:", id);
73
80
  }
74
81
  destroy() {
75
82
  if (this.timer) clearInterval(this.timer);
76
83
  this.container.innerHTML = "";
77
84
  }
78
85
  };
79
- var DevTipsFacts = {
80
- id: "dev-tips",
81
- name: "Developer Tips",
82
- category: "coding",
83
- facts: TIPS,
84
- renderMini: (c, cfg) => new SimpleFactsRenderer(c, TIPS, cfg),
85
- renderFull: (c, cfg) => new SimpleFactsRenderer(c, TIPS, cfg)
86
- };
87
86
 
88
- exports.DevTipsFacts = DevTipsFacts;
89
- //# sourceMappingURL=chunk-5AUPIR2C.cjs.map
90
- //# sourceMappingURL=chunk-5AUPIR2C.cjs.map
87
+ exports.BaseFactsRenderer = BaseFactsRenderer;
88
+ //# sourceMappingURL=chunk-ZRR5SKZV.cjs.map
89
+ //# sourceMappingURL=chunk-ZRR5SKZV.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/facts/base-renderer.ts"],"names":["__publicField"],"mappings":"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","file":"chunk-ZRR5SKZV.cjs","sourcesContent":["import { FactsInstance, Fact, FactsConfig } from \"../core/types\";\n\nexport class BaseFactsRenderer implements FactsInstance {\n private container: HTMLElement;\n private facts: Fact[];\n private currentIndex = 0;\n private timer: any;\n private config: FactsConfig;\n\n constructor(container: HTMLElement, facts: Fact[], config?: FactsConfig) {\n this.container = container;\n this.facts = facts;\n this.config = config || {};\n\n this.container.style.display = \"flex\";\n this.container.style.flexDirection = \"column\";\n this.container.style.alignItems = \"center\";\n this.container.style.justifyContent = \"center\";\n this.container.style.padding = \"20px\";\n this.container.style.textAlign = \"center\";\n\n if (this.config.shuffle) {\n this.currentIndex = Math.floor(Math.random() * this.facts.length);\n }\n\n this.showCurrent();\n this.startRotation();\n }\n\n private showCurrent() {\n if (this.facts.length === 0) return;\n\n const fact = this.facts[this.currentIndex];\n this.container.innerHTML = `\n <div style=\"font-weight: bold; margin-bottom: 8px;\">Fact #${\n this.currentIndex + 1\n }</div>\n <div style=\"font-size: 1.1em; line-height: 1.4;\">${fact.text}</div>\n ${\n fact.category\n ? `<div style=\"font-size: 0.8em; color: #888; margin-top: 8px; text-transform: uppercase; letter-spacing: 1px;\">${fact.category}</div>`\n : \"\"\n }\n `;\n\n // Add timer bar\n const timerBar = document.createElement(\"div\");\n timerBar.style.width = \"0%\";\n timerBar.style.height = \"2px\";\n timerBar.style.background = \"#22c55e\"; // Green progress\n timerBar.style.marginTop = \"15px\";\n timerBar.style.borderRadius = \"2px\";\n const interval = this.config.rotationInterval || 4000;\n timerBar.style.transition = `width ${interval}ms linear`;\n\n // Force reflow\n void this.container.offsetWidth;\n\n this.container.appendChild(timerBar);\n\n // Trigger animation\n requestAnimationFrame(() => {\n timerBar.style.width = \"100%\";\n });\n }\n\n private startRotation() {\n if (this.timer) clearInterval(this.timer);\n if (this.facts.length <= 1) return;\n\n const interval = this.config.rotationInterval || 4000;\n this.timer = setInterval(() => this.next(), interval);\n }\n\n next() {\n if (this.facts.length <= 1) return;\n\n if (this.config.shuffle) {\n let nextIndex = this.currentIndex;\n while (nextIndex === this.currentIndex && this.facts.length > 1) {\n nextIndex = Math.floor(Math.random() * this.facts.length);\n }\n this.currentIndex = nextIndex;\n } else {\n this.currentIndex = (this.currentIndex + 1) % this.facts.length;\n }\n this.showCurrent();\n }\n\n previous() {\n if (this.facts.length <= 1) return;\n\n if (this.config.shuffle) {\n this.next(); // For shuffle, previous is just another random one\n } else {\n this.currentIndex =\n (this.currentIndex - 1 + this.facts.length) % this.facts.length;\n }\n this.showCurrent();\n }\n\n favorite(id: string) {\n console.log(\"Fact favorited:\", id);\n }\n\n destroy() {\n if (this.timer) clearInterval(this.timer);\n this.container.innerHTML = \"\";\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
- import { G as GameState, I as InteractionMode } from '../types-vBwPFyxq.cjs';
2
- export { D as DoodleConfig, g as DoodleInstance, h as DoodlePlugin, F as Fact, d as FactsConfig, e as FactsInstance, f as FactsPlugin, b as GameInstance, c as GamePlugin, a as InteractionConfig } from '../types-vBwPFyxq.cjs';
3
- export { L as LoadingEngine, c as createLoadingInteraction } from '../engine-DdHCpfbk.cjs';
1
+ import { G as GameState, I as InteractionMode } from '../types-C3ZW56W1.cjs';
2
+ export { D as DoodleConfig, g as DoodleInstance, h as DoodlePlugin, F as Fact, d as FactsConfig, e as FactsInstance, f as FactsPlugin, b as GameInstance, c as GamePlugin, a as InteractionConfig } from '../types-C3ZW56W1.cjs';
3
+ export { L as LoadingEngine, c as createLoadingInteraction } from '../engine-2P2WUZIs.cjs';
4
4
 
5
5
  declare class StateManager {
6
6
  private static instance;
@@ -1,6 +1,6 @@
1
- import { G as GameState, I as InteractionMode } from '../types-vBwPFyxq.js';
2
- export { D as DoodleConfig, g as DoodleInstance, h as DoodlePlugin, F as Fact, d as FactsConfig, e as FactsInstance, f as FactsPlugin, b as GameInstance, c as GamePlugin, a as InteractionConfig } from '../types-vBwPFyxq.js';
3
- export { L as LoadingEngine, c as createLoadingInteraction } from '../engine--hGQ4LNR.js';
1
+ import { G as GameState, I as InteractionMode } from '../types-C3ZW56W1.js';
2
+ export { D as DoodleConfig, g as DoodleInstance, h as DoodlePlugin, F as Fact, d as FactsConfig, e as FactsInstance, f as FactsPlugin, b as GameInstance, c as GamePlugin, a as InteractionConfig } from '../types-C3ZW56W1.js';
3
+ export { L as LoadingEngine, c as createLoadingInteraction } from '../engine-D9HeZqt0.js';
4
4
 
5
5
  declare class StateManager {
6
6
  private static instance;
@@ -1,4 +1,4 @@
1
- import { h as DoodlePlugin } from '../types-vBwPFyxq.cjs';
1
+ import { h as DoodlePlugin } from '../types-C3ZW56W1.cjs';
2
2
 
3
3
  declare const BasicDoodle: DoodlePlugin;
4
4
 
@@ -1,4 +1,4 @@
1
- import { h as DoodlePlugin } from '../types-vBwPFyxq.js';
1
+ import { h as DoodlePlugin } from '../types-C3ZW56W1.js';
2
2
 
3
3
  declare const BasicDoodle: DoodlePlugin;
4
4
 
@@ -1,2 +1,2 @@
1
1
  export { BasicDoodle } from './basic-canvas.cjs';
2
- import '../types-vBwPFyxq.cjs';
2
+ import '../types-C3ZW56W1.cjs';
@@ -1,2 +1,2 @@
1
1
  export { BasicDoodle } from './basic-canvas.js';
2
- import '../types-vBwPFyxq.js';
2
+ import '../types-C3ZW56W1.js';
@@ -1,4 +1,4 @@
1
- import { a as InteractionConfig, I as InteractionMode } from './types-vBwPFyxq.cjs';
1
+ import { a as InteractionConfig, I as InteractionMode } from './types-C3ZW56W1.cjs';
2
2
 
3
3
  declare class LoadingEngine {
4
4
  private config;
@@ -1,4 +1,4 @@
1
- import { a as InteractionConfig, I as InteractionMode } from './types-vBwPFyxq.js';
1
+ import { a as InteractionConfig, I as InteractionMode } from './types-C3ZW56W1.js';
2
2
 
3
3
  declare class LoadingEngine {
4
4
  private config;
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var chunkZRR5SKZV_cjs = require('../chunk-ZRR5SKZV.cjs');
4
+ require('../chunk-4DE2IREA.cjs');
5
+
6
+
7
+
8
+ Object.defineProperty(exports, "BaseFactsRenderer", {
9
+ enumerable: true,
10
+ get: function () { return chunkZRR5SKZV_cjs.BaseFactsRenderer; }
11
+ });
12
+ //# sourceMappingURL=base-renderer.cjs.map
13
+ //# sourceMappingURL=base-renderer.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"base-renderer.cjs"}