Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
137 commits
Select commit Hold shift + click to select a range
ca77761
initial commit
jrmann100 Jun 30, 2025
66df5b0
feat: start developing detents
jrmann100 Jun 30, 2025
9864f84
docs: add todo for controls
jrmann100 Jun 30, 2025
5745410
feat: nice parameters
jrmann100 Jun 30, 2025
e0cf66d
feat: multiple spinners!
jrmann100 Jun 30, 2025
adda3ab
fix: offset start rather than end
jrmann100 Jun 30, 2025
21ae948
feat: minor optimizations
jrmann100 Jun 30, 2025
0860b95
feat: html containers
jrmann100 Jun 30, 2025
f8a0bb0
feat: switch to ssg
jrmann100 Jun 30, 2025
b1933f3
refactor: some renames
jrmann100 Jun 30, 2025
ed4c44e
chore: remove todos
jrmann100 Jun 30, 2025
9e399c8
refactor: multiply everything by 1000
jrmann100 Jun 30, 2025
548d55d
fix: normalize for framerate
jrmann100 Jun 30, 2025
3a0efae
feat: staggered release
jrmann100 Jul 1, 2025
b2b57a3
feat: make some optimizations
jrmann100 Jul 1, 2025
118c1ce
feat: continue optimizing, do hold math in RAF
jrmann100 Jul 1, 2025
cbc3564
feat: simplify stops
jrmann100 Jul 2, 2025
bbecc6e
feat: will-change
jrmann100 Jul 2, 2025
121f590
fix: track clicks in RAF
jrmann100 Jul 2, 2025
b8caeb4
fix: start reels immediately
jrmann100 Jul 2, 2025
0ce9c78
refactor: wrapping up! switch to js, start docs
jrmann100 Jul 2, 2025
63a1ca2
fix: p should never be negative
jrmann100 Jul 2, 2025
115587e
refactor: wait if it's js we don't need deno
jrmann100 Jul 2, 2025
25d02dc
feat: docs, and weaker directional bias
jrmann100 Jul 2, 2025
a2c091e
fix: bring up resist
jrmann100 Jul 2, 2025
409db19
refactor: magic numbers
jrmann100 Jul 2, 2025
f1ecc0b
docs: a few more comments
jrmann100 Jul 2, 2025
f97df1a
feat: start merging machine into godango
jrmann100 Jul 2, 2025
6ebadd6
refactor: correct buttonlike, nested interactive
jrmann100 Jul 2, 2025
1824be9
fix: abstract checkNeeds
jrmann100 Jul 2, 2025
afafab8
feat: massive light dom overhaul for components
jrmann100 Jul 3, 2025
4c61ee6
fix: explicitly mark if component css is embedded
jrmann100 Jul 3, 2025
ff60cc0
fix: port more of ripple over
jrmann100 Jul 3, 2025
ca32f1e
fix: remove test ripple component
jrmann100 Jul 3, 2025
b05ffad
feat: call them passphrases, rejection sampling
jrmann100 Jul 3, 2025
9261c2d
feat: start prepping for godango integration
jrmann100 Jul 3, 2025
5659762
fix: nosecure typo
jrmann100 Jul 3, 2025
71797e5
fix: warn if arrow missing jsdoc
jrmann100 Jul 3, 2025
9af6a9b
chore: bump packages
jrmann100 Jul 3, 2025
bc9f8d5
fix: resume beforeprint
jrmann100 Jul 3, 2025
4f6c673
fix: eslint single quotes, require methods
jrmann100 Jul 3, 2025
742de70
Revert "fix: resume beforeprint"
jrmann100 Jul 3, 2025
5b3aa30
fix: print behavior
jrmann100 Jul 3, 2025
6c7f389
chore: update todos
jrmann100 Jul 3, 2025
e6a4a39
fix: quotes
jrmann100 Jul 3, 2025
20caf1d
refactor: force-start machine
jrmann100 Jul 6, 2025
fc21cdf
refactor: start cleaning interface
jrmann100 Jul 6, 2025
fbb93aa
chore: bump copyright
jrmann100 Jul 6, 2025
bc06779
fix: copy from spinner
jrmann100 Jul 6, 2025
34f4367
refactor: data-value is cute but
jrmann100 Jul 6, 2025
4ad74d5
feat: link xkcd
jrmann100 Jul 8, 2025
a074b3a
feat: clean old interface, animate length
jrmann100 Jul 25, 2025
786c123
fix: length velocity
jrmann100 Jul 25, 2025
7d766da
fix: let's just esnext
jrmann100 Jul 28, 2025
73851f9
refactor: keep moving things into the machine
jrmann100 Jul 28, 2025
eaa2166
fix: theme icon as moon
jrmann100 Aug 2, 2025
f91a040
feat: couple of toods
jrmann100 Aug 4, 2025
f443974
feat: switch to class
jrmann100 Aug 4, 2025
8123e93
feat: start converting to forces
jrmann100 Aug 5, 2025
fb89d2c
fix: fine-tune to 24fps and slow down past that
jrmann100 Aug 6, 2025
072f9fa
chore: clean up debug
jrmann100 Aug 7, 2025
1aed4ce
fix: lower spring threshold to ensure reels stop
jrmann100 Aug 7, 2025
44150eb
refactor: raise frame rate to infinity in case
jrmann100 Aug 7, 2025
8e302aa
chore: remove debug log
jrmann100 Aug 7, 2025
4f850cf
fix: well that was embarassing
jrmann100 Aug 7, 2025
895f614
fix: never mind the issue persists
jrmann100 Aug 7, 2025
6aa8f2e
fix: increase boost to match original
jrmann100 Aug 7, 2025
f810c76
fix: re-introduce animated length
jrmann100 Aug 7, 2025
1541e78
feat: update rules!
jrmann100 Aug 7, 2025
d3d5291
docs: work on godango descriptions
jrmann100 Aug 7, 2025
7b05d95
fix: don't require description on getter
jrmann100 Aug 7, 2025
25ba50d
fix: increase spring factor on number
jrmann100 Aug 7, 2025
810c718
fix: wee bit of linting
jrmann100 Aug 7, 2025
19846c7
chore: lint
jrmann100 Aug 7, 2025
036c400
feat: more jsdoc rules
jrmann100 Aug 7, 2025
c2aa588
chore: lint:fix
jrmann100 Aug 7, 2025
7e812ef
docs: document checkNeeds
jrmann100 Aug 8, 2025
162a41f
feat: some ts shenangians to get scheme inference
jrmann100 Aug 8, 2025
60dd2d7
fix: no need for @class with es2015 class
jrmann100 Aug 8, 2025
997b31d
chore: update todo
jrmann100 Aug 8, 2025
e863fae
chore: disable expected warning
jrmann100 Aug 8, 2025
82cc461
docs: linting!
jrmann100 Aug 8, 2025
2bd5b45
fix: get everything into working state
jrmann100 Aug 8, 2025
b45231c
fix: nosecure might have text
jrmann100 Aug 8, 2025
d2fe119
fix: not a fan of that color
jrmann100 Aug 8, 2025
3901eb1
refactor: register components separately
jrmann100 Aug 8, 2025
7bba953
fix: element (not component) is args-agnostic
jrmann100 Aug 8, 2025
b446d62
feat: nested component folders
jrmann100 Aug 8, 2025
d0a9bee
refactor: a better way to define components
jrmann100 Aug 8, 2025
f99edde
feat: new launch system w/ five-server
jrmann100 Aug 10, 2025
53777fd
feat: start drafting tabs
jrmann100 Aug 10, 2025
ed99f81
feat: length box todo
jrmann100 Aug 10, 2025
c5cd866
refactor: component defns
jrmann100 Aug 12, 2025
6970cf1
fix: tab upgrading, debug console
jrmann100 Aug 15, 2025
eb79830
feat: disable interactive with .no-ia
jrmann100 Aug 16, 2025
3519d6e
refactor: split border styles
jrmann100 Aug 16, 2025
4e76e8b
chore: remove debug log
jrmann100 Aug 16, 2025
ba6a5d6
feat: split tabs
jrmann100 Aug 16, 2025
8ecc102
fix: require jsdoc on props
jrmann100 Aug 16, 2025
24311fc
fix: require context should match description
jrmann100 Aug 16, 2025
5de5d6e
feat: start moving godango into tabs
jrmann100 Aug 16, 2025
d9360b1
feat: overkill tabs
jrmann100 Aug 16, 2025
f197ad8
refactor: put back tabs-content wrapper
jrmann100 Aug 18, 2025
f193361
feat: right-align tabs
jrmann100 Aug 18, 2025
147e013
fix: actually don't right-align
jrmann100 Aug 18, 2025
ed42bb0
refactor: remove unused layout id
jrmann100 Aug 18, 2025
020353b
feat: use anchor-based tabs
jrmann100 Aug 18, 2025
9b7e5ef
fix: specify reduce
jrmann100 Aug 18, 2025
1e944a9
feat: start working on tabs accessibility
jrmann100 Aug 18, 2025
e0fb310
feat: fullheight, fullwidth style to match header
jrmann100 Aug 18, 2025
c36575a
chore: remove debug log
jrmann100 Aug 18, 2025
13aac25
refactor: move fullwidth to end
jrmann100 Aug 18, 2025
13f10ba
feat: minimal variant
jrmann100 Aug 19, 2025
c7f6152
feat: some tabs tweaks
jrmann100 Aug 19, 2025
f9d6071
refactor: way better minimal implementation
jrmann100 Aug 19, 2025
66802ff
refactor: remove unused declaration
jrmann100 Aug 19, 2025
a874fa5
fix: edges when minimal and not full-width
jrmann100 Aug 19, 2025
5a1999a
docs: tabs css explanations
jrmann100 Aug 19, 2025
9bf4d42
feat: start simplifying godango
jrmann100 Aug 21, 2025
a08e6d5
fix: quick fix, inputs need names
jrmann100 Aug 21, 2025
6ea2326
fix: monospace length
jrmann100 Aug 23, 2025
8f5c298
chore: file clipboard todo
jrmann100 Aug 23, 2025
5e8d2b7
refactor: time to just blast away original code
jrmann100 Aug 23, 2025
7300fcb
feat: init machine children in constructor
jrmann100 Aug 26, 2025
dad74e5
refactor: start bringing things under reel type
jrmann100 Aug 26, 2025
b9708a1
feat: continue moving logic into reel
jrmann100 Aug 26, 2025
f488fe7
refactor: use prefer-template
jrmann100 Aug 26, 2025
889fffe
feat: finish moving things into reel
jrmann100 Aug 26, 2025
e7f874d
feat: finish porting reel
jrmann100 Aug 26, 2025
a1ac8cb
chore: lint:fix (basically templates)
jrmann100 Aug 26, 2025
65d5edc
docs: tab docs & other lint fixes
jrmann100 Aug 26, 2025
af34d6c
fix: stop ts yelling about node types
jrmann100 Aug 27, 2025
b9ee138
fix: missed content -> value change
jrmann100 Aug 27, 2025
3833a49
feat: clever idea
jrmann100 Aug 28, 2025
343582c
fix: no need for jsdoc to check types
jrmann100 Aug 28, 2025
df0f133
refactor: aaand back to tabs but now w/ query
jrmann100 Aug 28, 2025
818cbb1
feat: web3
jrmann100 Aug 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .fiveserverrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"port": 5500,
"root": "build",
"open": false,
"https": "cert.cjs"
}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
node_modules
.DS_Store
build
cert.cjs
2 changes: 1 addition & 1 deletion .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"recommendations": ["ritwickdey.LiveServer", "Gruntfuggly.todo-tree", "esbenp.prettier-vscode"]
"recommendations": ["dbaeumer.vscode-eslint", "Gruntfuggly.todo-tree", "esbenp.prettier-vscode"]
}
12 changes: 12 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "dev",
"preLaunchTask": "dev",
"url": "https://localhost:5500"
}
]
}
11 changes: 0 additions & 11 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,7 @@
},
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"liveServer.settings.root": "build/",
"todo-tree.tree.scanMode": "workspace",
"liveServer.settings.multiRootWorkspaceName": "routing",
"liveServer.settings.https": {
"enable": true,
"cert": "/Users/jordan/proj/self-signed-cert/public.crt",
"key": "/Users/jordan/proj/self-signed-cert/private.key",
"passphrase": "liveserver"
},
"liveServer.settings.donotVerifyTags": true,
"liveServer.settings.host": "0.0.0.0",
"liveServer.settings.donotShowInfoMsg": true,
"todo-tree.regex.regexCaseSensitive": false,
"todo-tree.general.tags": ["FIXME", "TODO", "[ ]", "CHECKME", "DELME"],
"todo-tree.regex.regex": "(^'\\s|^\\s*\\*\\s*@|^\"\\s|//|#|<!--|;|(/|\\s)\\*+|^|^[ \\t]*(-|\\d+.))\\s*($TAGS)",
Expand Down
65 changes: 61 additions & 4 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,72 @@
"version": "2.0.0",
"tasks": [
{
"label": "five-server",
"type": "npm",
"script": "dev",
"script": "five-server",
"isBackground": true,
"group": {
"kind": "test",
"isDefault": true
},
// we use impossible regex (?!) to match any output
// since five-server never outputs problems or restarts
// but you need a problem matcher to get it to run
// in the background for a launch configuration
"problemMatcher": [
{
"owner": "five-server",
"pattern": [
{
"regexp": "(?!)",
"kind": "file",
"file": 1,
"message": 1
}
],
"background": {
"activeOnStart": true,
"beginsPattern": "(?!)",
"endsPattern": "^\\s*Five Server running at:"
}
}
]
},
{
"label": "build-watch",
"type": "npm",
"script": "build-watch",
"isBackground": true,
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": [],
"label": "npm: dev",
"detail": "nodemon render.js -i build -e js,json,html,css,html.inc"
"problemMatcher": [
{
"owner": "javascript",
"fileLocation": ["absolute"],
"pattern": [
{
"regexp": "^(.*Error.*\\s+.*)$",
"message": 1
},
{
"regexp": "\\s*at\\s+file:\\/\\/(.*):(\\d+):(\\d+)$",
"file": 1,
"line": 2,
"column": 3
}
],
"background": {
"beginsPattern": "^\\[nodemon\\] starting.*",
"endsPattern": "^\\[nodemon\\] (?:app crashed|clean exit).*"
}
}
]
},
{
"label": "dev",
"dependsOn": ["five-server", "build-watch"]
}
]
}
350 changes: 241 additions & 109 deletions bun.lock

Large diffs are not rendered by default.

9 changes: 9 additions & 0 deletions cert.cjs.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// copy this file to cert.cjs and fill in the path to your certificate and key;
// or just set "https": true in five-server.config.js to generate a self-signed cert automatically

const fs = require('fs');

module.exports = {
cert: fs.readFileSync('/PATH/TO/YOUR/CERT.crt', { encoding: 'utf8' }),
key: fs.readFileSync('/PATH/TO/YOUR/KEY.key', { encoding: 'utf8' })
};
60 changes: 52 additions & 8 deletions eslint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,19 +30,63 @@ export default defineConfig([
},
packageJson.configs.recommended,
{
files: ['**/*.js'],
files: ['**/*.{js,ts}'],
plugins: {
prettier,
jsdoc
},
extends: [
eslint.configs.recommended,
jsdoc.configs['flat/recommended'],
tseslint.configs.strict,
tseslint.configs.stylistic,
eslintPluginPrettierRecommended
],
rules: {
...jsdoc.configs['flat/recommended'].rules,
...tseslint.configs.strict.rules,
...tseslint.configs.stylistic.rules,
...eslintPluginPrettierRecommended.rules,
...eslint.configs.recommended.rules,
// https://github.com/gajus/eslint-plugin-jsdoc/issues/99
'jsdoc/no-undefined-types': ['off']
'jsdoc/no-undefined-types': ['off'],
'jsdoc/require-jsdoc': [
'warn',
{
require: {
ArrowFunctionExpression: true,
ClassDeclaration: true,
ClassExpression: true,
FunctionDeclaration: true,
FunctionExpression: true
},
contexts: [
'MethodDefinition:not([kind="get"], [kind="set"], [kind="constructor"])',
'PropertyDefinition'
]
}
],
'jsdoc/require-description': [
'warn',
{
contexts: [
'ArrowFunctionExpression',
'ClassDeclaration',
'ClassExpression',
'FunctionDeclaration',
'FunctionExpression:not(MethodDefinition > FunctionExpression)',
'MethodDefinition:not([kind="get"], [kind="set"], [kind="constructor"])',
'PropertyDefinition'
]
}
],
'jsdoc/no-blank-blocks': 'warn',
quotes: ['warn', 'single', { avoidEscape: true }],
'prefer-template': 'warn',
'jsdoc/valid-types': 'off'
},
settings: {
jsdoc: {
preferredTypes: {
any: false,
'*': false
}
}
}
},
{
Expand Down Expand Up @@ -73,7 +117,7 @@ export default defineConfig([
},
// root-level files are Node scripts
{
files: ['*.js'],
files: ['*.js', '*.ts'],
languageOptions: {
globals: globals.node
}
Expand Down
13 changes: 10 additions & 3 deletions fragments/resume.html.inc
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,8 @@
document.querySelector('.status').remove();
});

// intercept print shortcut to open printable viewer
// standard drive preview viewer is not printable for some reason!
// so use this workaround which previews the pdf it just exported
// if ctrl + p or cmd + p is the browser's print keybinding,
// suppress it and open the PDF in a new tab instead.
window.addEventListener('keydown', (e) => {
if ((e.ctrlKey || e.metaKey) && e.key === 'p') {
e.preventDefault();
Expand All @@ -68,6 +67,14 @@
);
}
});

// if the user tries to print the page using a different method,
// we can't prevent the dialog from showing up in this tab
// unless we redirect.
window.addEventListener('beforeprint', (e) => {
window.location.href =
'https://docs.google.com/viewerng/viewer?url=https://docs.google.com/document/d/1LcOpwM2IJcIhgiO-hPV5Ddg9txtqIGaY_wQ8Z6zRfO4/export?format%3Dpdf';
});
}
</script>
<!--{{/main}}-->
22 changes: 12 additions & 10 deletions fragments/ripple.html.inc
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,24 @@ rippling card test
</style>
<!--{{/head}}-->
<!--{{main}}-->
<rippling-card
<ripple-component
d="m 6.2220957,7.1841562 c -0.2961276,0.2444863 -0.2961276,0.6394258 0,0.8839121 l 2.9460895,2.4323267 -2.9460895,2.432327 c -0.2961276,0.244485 -0.2961276,0.639426 0,0.88391 0.296127,0.244491 0.774487,0.244491 1.0706148,0 l 3.4851945,-2.877416 c 0.296127,-0.244486 0.296127,-0.639425 0,-0.883912 L 7.2927105,7.1778872 C 7.004176,6.9396697 6.5182227,6.9396697 6.2220957,7.1841562 Z M 21,3 H 3 C 1.9,3 1,3.9 1,5 v 14 c 0,1.1 0.9,2 2,2 h 18 c 1.1,0 2,-0.9 2,-2 V 5 C 23,3.9 22.1,3 21,3 Z M 20,19 H 4 C 3.45,19 3,18.55 3,18 V 6 C 3,5.45 3.45,5 4,5 h 10.5 v 1.5 c 0,0.55 0.45,1 1,1 H 21 V 18 c 0,0.55 -0.45,1 -1,1 z"
text="Shell"
></rippling-card>
<rippling-card
></ripple-component>
<ripple-component
d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v1c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-1c0-2.66-5.33-4-8-4z"
text="Account"
></rippling-card>
<rippling-card
></ripple-component>
<ripple-component
d="M3.24 6.15C2.51 6.43 2 7.17 2 8v12c0 1.1.89 2 2 2h16c1.11 0 2-.9 2-2V8c0-1.11-.89-2-2-2H8.3l8.26-3.34L15.88 1 3.24 6.15zM7 20c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm13-8h-2v-2h-2v2H4V8h16v4z"
text="Grades"
></rippling-card>
></ripple-component>
<script type="module">
import { RipplingCard } from '/static/components/ripple/ripple.js';
if (customElements.get('rippling-card') === undefined) {
customElements.define('rippling-card', RipplingCard);
} // fixme stops working on navigate
import createComponent from '/static/components/components.js';
await createComponent('ripple', {
html: true,
css: 'local',
js: true
});
</script>
<!--{{/main}}-->
1 change: 1 addition & 0 deletions fragments/utilities/dashboard.html.inc
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
}

/* I am so proud of this */
/* checkme: what is the behavior in firefox which is not webkit? */
progress::-webkit-progress-bar {
background-image: repeating-linear-gradient(
to right,
Expand Down
Loading