Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🌳 #17

Open
wants to merge 850 commits into
base: main
Choose a base branch
from
Open

🌳 #17

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
850 commits
Select commit Hold shift + click to select a range
d502f77
default title
philcockfield Mar 27, 2025
3bfc82c
stub in Signals
philcockfield Mar 27, 2025
679bb9c
refine global signals
philcockfield Mar 27, 2025
07cf9d2
move hooks
philcockfield Mar 27, 2025
368317f
listem method
philcockfield Mar 27, 2025
61c8ee7
pass signals to mobile layout
philcockfield Mar 27, 2025
ef5a2f4
Landing-3, signals API
philcockfield Mar 27, 2025
89ada31
rename folder
philcockfield Mar 27, 2025
9b70440
tweak
philcockfield Mar 27, 2025
9cf0079
Update -SPEC.Debug.tsx
philcockfield Mar 27, 2025
16dd15e
rename folder
philcockfield Mar 27, 2025
12f5daa
add theme to API
philcockfield Mar 27, 2025
49e4cd7
update call sites to use signals Theme
philcockfield Mar 27, 2025
597c7cb
redraw count
philcockfield Mar 27, 2025
247e6d5
Update -SPEC.Debug.tsx
philcockfield Mar 27, 2025
78b1f85
rename folder: Layout.Mobile → Layout
philcockfield Mar 27, 2025
0023eb6
refactor signals
philcockfield Mar 27, 2025
8915279
add @tdb/slc to CI paths
philcockfield Mar 27, 2025
7e4f817
centralise video idexes
philcockfield Mar 27, 2025
2dbbc04
move bg opacity to signals
philcockfield Mar 27, 2025
0f82229
landing entry
philcockfield Mar 27, 2025
941172f
refactor
philcockfield Mar 27, 2025
cb1a18b
consolidate render layout factory into Layout API
philcockfield Mar 27, 2025
f49695f
tmpl: default listen() method
philcockfield Mar 27, 2025
9429f42
dimension numbers
philcockfield Mar 27, 2025
2f82baf
rename component
philcockfield Mar 27, 2025
865c4d4
clean
philcockfield Mar 28, 2025
1ae874e
Update ui.Mobile.tsx
philcockfield Mar 28, 2025
e90ecef
add types
philcockfield Mar 28, 2025
8c863f9
refactor
philcockfield Mar 28, 2025
f80e54e
types
philcockfield Mar 28, 2025
0b70a11
move video signals out of App signal props
philcockfield Mar 28, 2025
923be73
signals taking content
philcockfield Mar 28, 2025
e2ee23a
load content method
philcockfield Mar 28, 2025
464f8b0
refactor - state prop name
philcockfield Mar 28, 2025
38d2072
move AppContent folder
philcockfield Mar 28, 2025
5ad572a
dynamic theme from state
philcockfield Mar 28, 2025
eafb1b6
render props
philcockfield Mar 28, 2025
851c2fe
refactor
philcockfield Mar 28, 2025
7868fcc
rename folder
philcockfield Mar 28, 2025
2b957bd
refactor
philcockfield Mar 28, 2025
b11503f
rename
philcockfield Mar 28, 2025
ee7b1a7
AppContent.render ← function
philcockfield Mar 28, 2025
6b0d181
fix call-sites
philcockfield Mar 28, 2025
6702b18
render
philcockfield Mar 28, 2025
ffa3ec9
change return types
philcockfield Mar 28, 2025
caacdd8
rendering content
philcockfield Mar 28, 2025
91bd57c
tweak style
philcockfield Mar 28, 2025
4f0b696
Update ui.tsx
philcockfield Mar 28, 2025
809e3c8
Update ui.Trailer.tsx
philcockfield Mar 28, 2025
5f9852c
VimeoBackground: taking number OR string as input
philcockfield Mar 28, 2025
777e2fd
update VideoBackground
philcockfield Mar 28, 2025
b0bf19d
add src to AppSignals state object
philcockfield Mar 28, 2025
8f2169c
signals: stack API
philcockfield Mar 28, 2025
70aa021
add stack WIP
philcockfield Mar 28, 2025
821298a
refactor: remove from signal/state: theme et al
philcockfield Mar 28, 2025
2fe1882
type rename
philcockfield Mar 28, 2025
fd16473
type rename
philcockfield Mar 29, 2025
4f66195
Update -SPEC.Debug.tsx
philcockfield Mar 29, 2025
06ca638
render content via API
philcockfield Mar 29, 2025
4e316a3
refactor
philcockfield Mar 29, 2025
1721961
refactor
philcockfield Mar 29, 2025
76ad024
clean
philcockfield Mar 29, 2025
11d3d7e
refactor content renderer
philcockfield Mar 29, 2025
fc28506
Update ui.Mobile.tsx
philcockfield Mar 29, 2025
3221a8c
animated mobile sheet
philcockfield Mar 29, 2025
98cfb92
spec
philcockfield Mar 29, 2025
425053e
push stack
philcockfield Mar 29, 2025
9699ea9
tmpl: tweak
philcockfield Mar 29, 2025
c32743f
clean up tests
philcockfield Mar 29, 2025
6bb6c0a
compact docs
philcockfield Mar 29, 2025
50e8e3f
signal: pop (leave param)
philcockfield Mar 29, 2025
91a7ed4
App-Content - render from factory (in sheet)
philcockfield Mar 29, 2025
7419b35
render from model
philcockfield Mar 29, 2025
f22f0f2
Layout-3: using new sheet content
philcockfield Mar 29, 2025
9d773de
sheet tweaks
philcockfield Mar 29, 2025
1c79246
rename folder
philcockfield Mar 29, 2025
bd204fa
rename: MobileSheet → Sheet
philcockfield Mar 29, 2025
a8cddd8
stub in video player on trailer
philcockfield Mar 29, 2025
0920ae0
refactor
philcockfield Mar 29, 2025
6c3401f
clean
philcockfield Mar 29, 2025
a054b27
spec - render small logo
philcockfield Mar 29, 2025
fd6ac9c
type rename
philcockfield Mar 29, 2025
dd85448
refactor
philcockfield Mar 29, 2025
63e6e02
prevent dev-harness content from crashing into debug panel
philcockfield Mar 29, 2025
e3861db
refactor keyboard commands
philcockfield Mar 29, 2025
e1bf4fe
tweak opacity
philcockfield Mar 29, 2025
bfabe96
FIX: ensure new stacking context on each item in the stack
philcockfield Mar 29, 2025
5c3560c
clean
philcockfield Mar 29, 2025
d2cef23
Update common.ts
philcockfield Mar 29, 2025
aeba9c2
move type
philcockfield Mar 29, 2025
71708fa
refactor exports
philcockfield Mar 29, 2025
576dce8
refactor: useDist
philcockfield Mar 29, 2025
4c97f69
import Spec UI controls from function (via Layout spec)
philcockfield Mar 29, 2025
e37b3b9
useKeyboard hook initiated at entry
philcockfield Mar 29, 2025
6d0dbb6
refactor
philcockfield Mar 29, 2025
7bb7710
refactor: theme constants
philcockfield Mar 29, 2025
57892b4
move: <Sheet> → @sys/ui-components
philcockfield Mar 29, 2025
30b4f6f
refactor
philcockfield Mar 29, 2025
37b6a61
refactor specs
philcockfield Mar 29, 2025
563d3bd
docs
philcockfield Mar 30, 2025
e5b00d5
exports
philcockfield Mar 30, 2025
a8a47ac
bump
philcockfield Mar 30, 2025
93801c5
tweaks
philcockfield Mar 30, 2025
cc860b8
refactor
philcockfield Mar 30, 2025
ff82f4c
player instances synced on App signals
philcockfield Mar 30, 2025
bda0817
Player.find: unit test
philcockfield Mar 30, 2025
0c72d0b
Render stack
philcockfield Mar 30, 2025
e7b2e99
App.listen test (rudimentary)
philcockfield Mar 30, 2025
d26aa5b
add readonly
philcockfield Mar 30, 2025
172f12d
refactor: move up App ← AppSignals
philcockfield Mar 30, 2025
4c8a2f5
lifecycle unit-test
philcockfield Mar 30, 2025
e59bb9b
retains signal player
philcockfield Mar 30, 2025
fa2fad8
move Player API (cohesion)
philcockfield Mar 30, 2025
188effd
root Tubes video ref
philcockfield Mar 30, 2025
08fcc08
refactor
philcockfield Mar 30, 2025
2dde341
refactor keyboard controller
philcockfield Mar 30, 2025
357a8e4
dispose (in tests)
philcockfield Mar 30, 2025
864de81
refactor
philcockfield Mar 30, 2025
6990250
Player.key - generator method
philcockfield Mar 30, 2025
d660636
rename: find → factory
philcockfield Mar 30, 2025
963bb46
property dispose$
philcockfield Mar 31, 2025
550f5c7
spec tweaks
philcockfield Mar 31, 2025
0a1cf6e
reset default shadow-opacity, and expose as property
philcockfield Mar 31, 2025
23b0c8a
add sheetMargin prop
philcockfield Mar 31, 2025
3f0f61f
tweak title
philcockfield Mar 31, 2025
079bd48
stub in module
philcockfield Mar 31, 2025
a4feb2c
add ref: react-inspector
philcockfield Mar 31, 2025
de8f024
Update pkg.ts
philcockfield Mar 31, 2025
ff87429
fontSize and theme
philcockfield Mar 31, 2025
fda491f
<Obj> with theme, name, and data
philcockfield Mar 31, 2025
d3f795d
tweak
philcockfield Mar 31, 2025
ff97542
use <Obj>
philcockfield Mar 31, 2025
d8a10e7
block property
philcockfield Mar 31, 2025
d24d5fd
Update ui.tsx
philcockfield Mar 31, 2025
33ba151
Sheet: direction prop (add "top down" animation)
philcockfield Mar 31, 2025
c509516
docs
philcockfield Mar 31, 2025
d0edce4
crude: playing prop implementation on vimeo-background
philcockfield Mar 31, 2025
9a41075
notes
philcockfield Mar 31, 2025
bfb13ba
simple start/stop hook into iframe js
philcockfield Mar 31, 2025
6a3acce
clean
philcockfield Mar 31, 2025
2703fcb
refactor
philcockfield Mar 31, 2025
2ba0ba9
backbround.video: playing property on API (and component binding)
philcockfield Mar 31, 2025
22c4bcb
video-player: showVolumeControl property
philcockfield Mar 31, 2025
c990b3d
refactor: Layout
philcockfield Mar 31, 2025
bf48461
refactor
philcockfield Mar 31, 2025
5bb88f5
move folder - clear distinction of ui-content from ui-structure.
philcockfield Mar 31, 2025
a9960b0
refactor
philcockfield Mar 31, 2025
6fa6c9f
clean up hook types
philcockfield Mar 31, 2025
1e0037f
rename files
philcockfield Apr 1, 2025
041c079
refactor: move hook
philcockfield Apr 1, 2025
cec6c80
refactor / clean
philcockfield Apr 1, 2025
3253a16
Button: event support touch
philcockfield Apr 1, 2025
caf0236
rename folder
philcockfield Apr 1, 2025
2937137
show options
philcockfield Apr 1, 2025
216433b
Update t.Dom.ts
philcockfield Apr 1, 2025
a048ca0
<Obj> view - expand visibility props
philcockfield Apr 1, 2025
0488305
use <Obj> in size observer spec
philcockfield Apr 1, 2025
96bf49f
expand prop on <Obj>
philcockfield Apr 1, 2025
1718bd1
stub in spec for useMouse
philcockfield Apr 1, 2025
efc4825
Update use.Mouse.ts
philcockfield Apr 1, 2025
48318e7
click inside/outside test
philcockfield Apr 1, 2025
632e3e4
DRY
philcockfield Apr 1, 2025
e994c5a
Update t.useClick.ts
philcockfield Apr 1, 2025
3b88020
Update ui.tsx
philcockfield Apr 1, 2025
37e485e
clean up
philcockfield Apr 1, 2025
f0c72eb
Sheet - orientation - all directions
philcockfield Apr 2, 2025
77d47d8
edge-margin prop
philcockfield Apr 2, 2025
07b077c
refactor
philcockfield Apr 2, 2025
154a5ff
bump
philcockfield Apr 2, 2025
c4f4417
prep
philcockfield Apr 2, 2025
ab405e0
Update -SPEC.Debug.tsx
philcockfield Apr 2, 2025
0224c60
Update jsr.yaml
philcockfield Apr 2, 2025
4ef24fe
Update jsr.yaml
philcockfield Apr 2, 2025
e3f84ba
Update jsr.yaml
philcockfield Apr 2, 2025
394383d
docs
philcockfield Apr 2, 2025
a045543
tweak
philcockfield Apr 2, 2025
cafa93a
useDevKeyboard
philcockfield Apr 2, 2025
7758024
Update jsr.yaml
philcockfield Apr 2, 2025
3bec71f
call-site
philcockfield Apr 2, 2025
8571730
Update jsr.yaml
philcockfield Apr 2, 2025
90e46af
Update jsr.yaml
philcockfield Apr 2, 2025
6ace2d3
call-sites: useKeyboard
philcockfield Apr 2, 2025
e752816
docs: typos and setup note
philcockfield Apr 2, 2025
3b3f0a4
docs
philcockfield Apr 2, 2025
8b00ab9
Update jsr.yaml
philcockfield Apr 2, 2025
eecb24e
docs
philcockfield Apr 2, 2025
b1ea269
Update .test.ts
philcockfield Apr 2, 2025
01c9539
create stack
philcockfield Apr 2, 2025
41074d1
delete old test (app specific)
philcockfield Apr 2, 2025
61a0af2
update call-site
philcockfield Apr 2, 2025
6816f3a
refactor
philcockfield Apr 2, 2025
e5525ce
fix: update within useEffect
philcockfield Apr 2, 2025
0811c04
refactor Video debug
philcockfield Apr 2, 2025
2be8f48
rename prop
philcockfield Apr 3, 2025
072b03a
refactor content factor filenames
philcockfield Apr 3, 2025
eac937b
prop margin
philcockfield Apr 3, 2025
0fb5f4a
Delete factory.tsx
philcockfield Apr 3, 2025
3402391
file refactor
philcockfield Apr 3, 2025
2b2c00a
file refactor
philcockfield Apr 3, 2025
be143c4
WIP
philcockfield Apr 3, 2025
3e134cb
rename
philcockfield Apr 3, 2025
6db7478
rename folder
philcockfield Apr 3, 2025
7376a1a
refactor
philcockfield Apr 3, 2025
e729fc1
Update m.Layout.tsx
philcockfield Apr 3, 2025
ce9cf91
tweak
philcockfield Apr 3, 2025
8b40dbc
confirmation test
philcockfield Apr 4, 2025
15a18a1
debug verification test
philcockfield Apr 4, 2025
c11285f
fix equality bug on value lookup
philcockfield Apr 4, 2025
d6be497
sheet: edge margin more specific input on prop
philcockfield Apr 4, 2025
b73028a
rename: <Obj> → <ObjectView>
philcockfield Apr 4, 2025
4160e21
rename tests
philcockfield Apr 4, 2025
f79f89b
refactor
philcockfield Apr 4, 2025
fd8f045
safe deep clone
philcockfield Apr 4, 2025
53ef8e3
Swap out clone function (prevent circular-ref error)
philcockfield Apr 4, 2025
e4bee99
css tweak: suppress white line at base of media player
philcockfield Apr 4, 2025
543c0e5
Update common.ts
philcockfield Apr 4, 2025
7f492dc
rename: Logo → Logo.Wordmark
philcockfield Apr 4, 2025
569888a
rename: Logo → Logo.Wordmark
philcockfield Apr 4, 2025
0cf3cf3
jump-to method (via iFrame post)
philcockfield Apr 4, 2025
4d82a6e
tweak layout
philcockfield Apr 4, 2025
ef3794a
Background
philcockfield Apr 5, 2025
3df42d6
Time.until ← takes t.Disposable (and all associate upstream helper/te…
philcockfield Apr 5, 2025
127b8d8
<Button>: label as function
philcockfield Apr 5, 2025
08be7c0
Update -SPEC.Debug.tsx
philcockfield Apr 5, 2025
b24d33b
<VimeoBackground>: playing transition
philcockfield Apr 5, 2025
2f0f77a
type inputs
philcockfield Apr 5, 2025
57447ae
clean
philcockfield Apr 5, 2025
7f8677d
API: get currentTime (Vimeo API via Iframe) - typed
philcockfield Apr 5, 2025
e92bb34
type rename
philcockfield Apr 5, 2025
b6cf95b
time and duration on API
philcockfield Apr 5, 2025
35d4bd8
refactor
philcockfield Apr 5, 2025
8be01d0
remove: fadeDuration
philcockfield Apr 5, 2025
284be77
move <Sheet>
philcockfield Apr 5, 2025
4cafeb0
type imports
philcockfield Apr 5, 2025
d3e01fc
desktop layout work
philcockfield Apr 5, 2025
4925f48
stub in top-down
philcockfield Apr 5, 2025
6366728
layout
philcockfield Apr 5, 2025
65836b5
Update mod.ts
philcockfield Apr 5, 2025
7a9c18e
deeper typename
philcockfield Apr 5, 2025
fed36ea
pointer events
philcockfield Apr 5, 2025
d6178be
loosen test assertion
philcockfield Apr 6, 2025
c6ae1c9
preload from AppContent.Render method
philcockfield Apr 6, 2025
77fe2e7
expose orientation and margin props
philcockfield Apr 6, 2025
c9f01b8
surface the output of useDist (pkg.json) in layout
philcockfield Apr 6, 2025
cd3c067
rename files
philcockfield Apr 6, 2025
41bdf9f
move useDist → @sys/ui-react (base module, to surface also in dev-har…
philcockfield Apr 6, 2025
596d911
dev harness: update task scripts
philcockfield Apr 6, 2025
97b0813
dev harness: useDist
philcockfield Apr 6, 2025
95f5f80
render size in dev-harness title
philcockfield Apr 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
14 changes: 14 additions & 0 deletions -tmp/-wip/Image.Svg/Svg.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { SvgRef } from './SvgRef';
import { SvgElement } from './libs';

/**
* Helpers for working with SVG objects within the given container element.
*
* NOTE:
* This helper assumes <svg> data assembled via the webpack plugin
* (see [cell.compiler]).
*/
export const Svg = {
ref: SvgRef,
Element: SvgElement,
};
35 changes: 35 additions & 0 deletions -tmp/-wip/Image.Svg/SvgRef.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import * as t from './types';
import { SVG } from './libs';

/**
* A helper for working with <SVG> objects within a given DOM container element.
*
* NOTE:
* This helper assumes <svg> data assembled via the webpack plugin
* (see [cell.compiler]).
*/
export function SvgRef(filename: string, elContainer: HTMLElement): t.SvgRef {
filename = (filename ?? '')
.trim()
.replace(/^\#/, '')
.replace(/\.svg$/, '');
filename = `${filename}.svg`;

return {
filename,
find(id: string) {
id = (id || '').trim().replace(/^\#/, '');
const query = `#${Format.toId(filename)}__${Format.toId(id)}`;
const el = elContainer.querySelector(query);
return el ? SVG(el) : undefined;
},
};
}

/**
* [Helpers]
*/

const Format = {
toId: (value: string) => value.replace(/\./g, '_'),
};
43 changes: 43 additions & 0 deletions -tmp/-wip/Image.Svg/dev/DEV.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import React from 'react';
import { DevActions } from 'sys.ui.dev';

import { Sample, SampleProps } from './Sample';

type Ctx = { props: SampleProps };

/**
* Actions
*/
export const actions = DevActions<Ctx>()
.namespace('ui.Image.Svg')
.context((e) => {
if (e.prev) return e.prev;
return {
props: { width: 600, color: 'dark' },
};
})

.items((e) => {
e.title('<Svg>');

e.button('width: 600', (e) => (e.ctx.props.width = 600));
e.button('width: 200', (e) => (e.ctx.props.width = 200));

e.hr(1, 0.1);

e.button('color: dark', (e) => (e.ctx.props.color = 'dark'));
e.button('color: blue', (e) => (e.ctx.props.color = 'blue'));

e.hr();
})

.subject((e) => {
e.settings({
host: { background: -0.04 },
layout: { cropmarks: -0.2 },
});

e.render(<Sample {...e.ctx.props} />);
});

export default actions;
35 changes: 35 additions & 0 deletions -tmp/-wip/Image.Svg/dev/Sample.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import '../types.declare';

import React, { useEffect } from 'react';

import { Svg } from '..';
import { COLORS, css } from '../../../common';
import Image from '../../../../static/images/sample/svg.sample.svg';

export type SampleProps = { color: 'dark' | 'blue'; width: number };

export const Sample: React.FC<SampleProps> = (props) => {
const { width } = props;
const ref = React.useRef<HTMLDivElement>(null);

useEffect(() => {
const svg = Svg.ref('svg.sample', ref.current as HTMLElement);

const isDark = props.color === 'dark';
const color = isDark ? COLORS.DARK : COLORS.BLUE;

const tick = svg.find('tick');
const outline = svg.find('border-outline');

tick?.opacity(isDark ? 1 : 0.2);
outline?.stroke(color);
}, [props.color]);

const styles = { base: css({}) };

return (
<div ref={ref} {...css(styles.base)}>
<Image width={width} />
</div>
);
};
3 changes: 3 additions & 0 deletions -tmp/-wip/Image.Svg/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export { Svg } from './Svg';
export { SvgRef } from './SvgRef';
export { SvgElement } from './libs';
1 change: 1 addition & 0 deletions -tmp/-wip/Image.Svg/libs.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { SVG, Element as SvgElement } from '@svgdotjs/svg.js';
11 changes: 11 additions & 0 deletions -tmp/-wip/Image.Svg/types.declare.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* Importing <SVG> assets.
* See:
* https://react-svgr.com
*/
declare module '*.svg' {
import React = require('react');
type Svg = React.SVGProps<SVGSVGElement> & { width?: number; height?: number };
export const ReactComponent: React.FC<Svg>;
export default ReactComponent;
}
6 changes: 6 additions & 0 deletions -tmp/-wip/Image.Svg/types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import { Element as SvgElement } from '@svgdotjs/svg.js';

export type SvgRef = {
filename: string;
find(id: string): SvgElement | undefined;
};
54 changes: 0 additions & 54 deletions .github/workflows/Video.tsx

This file was deleted.

13 changes: 12 additions & 1 deletion .github/workflows/jsr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,21 @@ jobs:

steps:
- uses: actions/checkout@v3
- uses: denoland/setup-deno@v1

- name: 'Install ESM Runtime: Deno 2.x'
uses: denoland/setup-deno@v1
with:
deno-version: v2

- name: 'Install ES Modules from JSR: https://jsr.io/@sys'
run: deno task info

- name: Deno Info
run: deno info && deno --version

- name: System Info
run: deno task info

- name: publish module → "@sys/types"
run: |
cd code/sys/types
Expand Down
12 changes: 12 additions & 0 deletions .github/workflows/jsr.yaml_
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,15 @@ jobs:
cd code/sys.driver/driver-vite
deno task test --parallel --trace-leaks
deno publish --allow-dirty

- name: publish module → "@sys/driver-vitepress"
run: |
cd code/sys.driver/driver-vitepress
deno task test --parallel --trace-leaks
deno publish --allow-dirty

- name: publish module → "@sys/tmp"
run: |
cd code/sys.tmp
deno task test --parallel --trace-leaks
deno publish --allow-dirty
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
[jsr-ci-url]: https://github.com/sys-repo/sys/actions/workflows/jsr.yaml



Monorepo comprising the core set of shared `/sys` "system" modules that flexibly compose into varying arrangements of (1) extremely-late-bound, (2) strongly typed, (3) decentralised, "cell like" functional processes.

- modules: [sys](/code/sys/) ← standard libs
Expand Down
7 changes: 7 additions & 0 deletions code/-tmpl/-test.ui.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/**
* @module
* Testing tools running in the browser/ui.
*/
export { expect } from '@sys/std/testing';
export { Dev, Spec } from '@sys/ui-react-devharness';
export * from './common.ts';
10 changes: 10 additions & 0 deletions code/-tmpl/common.t.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/**
* 🐷
* NB: placeholder type exports to ensure template imports don't error.
*/
export type * from './deno/src/common/t.ts';
export type * from './m.mod.ui/t.ts';
export type * from './m.mod/t.ts';

export type * from '@sys/types/t';
export type { CssInput } from '@sys/ui-css/t';
13 changes: 12 additions & 1 deletion code/-tmpl/common.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,13 @@
// NB: placeholder to ensure template imports don't error.
/**
* 🐷
* NB: placeholder exports to ensure template imports don't error.
*/
export type * as t from './common.t.ts';
export * from './deno/src/common.ts';

/**
* UI Refs:
*/
export { Color, css } from '@sys/ui-css';
export { Signal } from '@sys/ui-react';
export { Button } from '@sys/ui-react-components';
1 change: 1 addition & 0 deletions code/-tmpl/deno/deno.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"tasks": {
"lint": "deno lint",
"dry": "deno publish --allow-dirty --dry-run",
"check": "deno check src/*",
"clean": "deno run -RWE ./-scripts/-clean.ts",
"test": "deno test -RWNE --allow-run --allow-ffi",
"dev": "deno run -RWNE --allow-run --allow-ffi ./-scripts/-dev.ts",
Expand Down
2 changes: 1 addition & 1 deletion code/-tmpl/deno/src/common/libs.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export { Err, Pkg, Time } from '@sys/std';
export { Err, Pkg, rx, Signal, Time } from '@sys/std';
16 changes: 12 additions & 4 deletions code/-tmpl/deno/src/pkg.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,16 @@
import { Pkg, type t } from '@sys/std';
import { default as deno } from '../deno.json' with { type: 'json' };

import type { Pkg } from '@sys/types';

/**
* Package meta-data.
*
* AUTO-GENERATED:
* This file is generated via the `prep` command across the
* @system monorepo. See command:
*
* cd ./<system-repo-root>
* deno task prep
*
* - DO check this file in to source-control.
* - Do NOT manually alter the file (as your work will be lost).
*/
export const pkg: t.Pkg = Pkg.fromJson(deno);
export const pkg: Pkg = { name: '@sys/name', version: '0.0.0' };
64 changes: 64 additions & 0 deletions code/-tmpl/m.mod.ui/-SPEC.Debug.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
import React from 'react';
import { type t, Button, Color, css, Signal } from './common.ts';

type P = t.MyComponentProps;

/**
* Types:
*/
export type DebugProps = { debug: DebugSignals; style?: t.CssInput };
export type DebugSignals = ReturnType<typeof createDebugSignals>;

/**
* Signals:
*/
export function createDebugSignals(init?: (e: DebugSignals) => void) {
const s = Signal.create;
const props = { theme: s<P['theme']>('Light') };
const api = {
props,
listen() {
const p = props;
p.theme.value;
},
};
init?.(api);
return api;
}

/**
* Component:
*/
export const Debug: React.FC<DebugProps> = (props) => {
const { debug } = props;
const p = debug.props;

Signal.useRedrawEffect(() => debug.listen());

/**
* Render:
*/
const styles = {
base: css({}),
title: css({ fontWeight: 'bold', marginBottom: 10 }),
cols: css({ display: 'grid', gridTemplateColumns: 'auto 1fr auto' }),
};

return (
<div className={css(styles.base, props.style).class}>
<div className={css(styles.title, styles.cols).class}>
<div>{'Title'}</div>
<div />
<div></div>
</div>

<Button
block
label={() => `theme: "${p.theme}"`}
onClick={() => Signal.cycle<P['theme']>(p.theme, ['Light', 'Dark'])}
/>

<hr />
</div>
);
};
Loading