@gjsify/storybook 0.45.0 → 0.47.0
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.
- package/README.md +1 -1
- package/lib/esm/appearance.js +1 -1
- package/lib/esm/application.js +1 -1
- package/lib/esm/decorators.js +1 -1
- package/lib/esm/probe.js +1 -1
- package/lib/esm/story-widget.js +1 -1
- package/lib/esm/window.js +1 -1
- package/lib/types/appearance.d.ts +1 -1
- package/lib/types/application.d.ts +1 -1
- package/lib/types/decorators.d.ts +2 -2
- package/lib/types/story-widget.d.ts +3 -3
- package/lib/types/window.d.ts +1 -1
- package/package.json +15 -15
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ It is the GTK renderer for the runtime-agnostic [`@gjsify/stories`](../stories)
|
|
|
7
7
|
## Author a story
|
|
8
8
|
|
|
9
9
|
```ts
|
|
10
|
-
import GObject from '
|
|
10
|
+
import GObject from 'gi://GObject?version=2.0';
|
|
11
11
|
import { ControlType, StoryWidget, type StoryArgs, type StoryMeta, type StoryModule } from '@gjsify/storybook';
|
|
12
12
|
import { MyButton } from './my-button.js';
|
|
13
13
|
|
package/lib/esm/appearance.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./_virtual/_rolldown/runtime.js";import e from"
|
|
1
|
+
import"./_virtual/_rolldown/runtime.js";import e from"gi://Adw?version=1";import t from"gi://Gdk?version=4.0";import n from"gi://Gtk?version=4.0";import{ADW_ACCENT_COLOR_NAMES as r,adwaitaAccentBgColor as i,adwaitaAccentColor as a}from"@gjsify/adwaita-core";import{STORYBOOK_COLOR_SCHEMES as o,StorybookSettings as s}from"@gjsify/storybook-core";const c={system:`Follow system`,light:`Light`,dark:`Dark`},l={blue:`Blue`,teal:`Teal`,green:`Green`,yellow:`Yellow`,orange:`Orange`,red:`Red`,pink:`Pink`,purple:`Purple`,slate:`Slate`};var StorybookAppearance=class{constructor(){this._provider=null,this._applying=!1,this._styleManager=e.StyleManager.get_default(),this.settings=new s(()=>this._styleManager.get_dark()),this.settings.subscribe(e=>this._apply(e)),this._styleManager.connect(`notify::dark`,()=>this.settings.systemChanged()),this._apply(this.settings.state)}_apply(t){if(!this._applying){this._applying=!0;try{this._styleManager.set_color_scheme(t.colorScheme===`light`?e.ColorScheme.FORCE_LIGHT:t.colorScheme===`dark`?e.ColorScheme.FORCE_DARK:e.ColorScheme.DEFAULT),this._applyAccent(this.settings.resolvedAccent)}finally{this._applying=!1}}}_applyAccent(e){let r=t.Display.get_default();if(!r)return;if(!this._provider){if(!e)return;this._provider=new n.CssProvider,n.StyleContext.add_provider_for_display(r,this._provider,n.STYLE_PROVIDER_PRIORITY_APPLICATION)}if(!e){this._provider.load_from_string(``);return}let o=i(e),s=a(e,this.settings.resolvedDark);this._provider.load_from_string(`:root { --accent-bg-color: ${o}; --accent-color: ${s}; }`)}};function buildSwatch(e,t,r){let i=new n.CheckButton({tooltip_text:t,halign:n.Align.CENTER,valign:n.Align.CENTER,focus_on_click:!1});for(let t of e)i.add_css_class(t);return i.update_property([n.AccessibleProperty.LABEL],[t]),r&&i.set_group(r),i}function buildSwatchCard(t=!1){let n=new e.WrapBox({align:.5,child_spacing:8,line_spacing:8,margin_top:12,margin_bottom:12,margin_start:12,margin_end:12}),r=new e.Bin({child:n,hexpand:!0});return r.add_css_class(`card`),t&&r.add_css_class(`storybook-card-attached`),{card:r,row:n}}function buildAppearanceDialog(t){let a=t.settings,s=new e.PreferencesPage,u=new e.PreferencesGroup({title:`Style`}),{card:d,row:f}=buildSwatchCard(),p=null,m=new Map;for(let e of o){let t=buildSwatch([`storybook-swatch`,`storybook-scheme-swatch`,`storybook-scheme-${e}`],c[e],p);p??=t,t.set_active(a.colorScheme===e),t.connect(`toggled`,()=>{t.get_active()&&(a.colorScheme=e)}),m.set(e,t),f.append(t)}u.add(d),s.add(u);let h=new e.PreferencesGroup({title:`Accent colour`});h.add_css_class(`storybook-attached-group`);let g=new e.SwitchRow({title:`Use a custom accent colour`,subtitle:`Off follows the desktop, which owns the accent`,active:a.accentMode===`custom`});h.add(g);let{card:_,row:v}=buildSwatchCard(!0),y=null,b=new Map;for(let e of r){let t=buildSwatch([`storybook-swatch`],l[e],y);y??=t,t.set_active(a.accent===e);let r=new n.CssProvider;r.load_from_string(`checkbutton { background-color: ${i(e)}; }`),t.get_style_context().add_provider(r,n.STYLE_PROVIDER_PRIORITY_APPLICATION),t.connect(`toggled`,()=>{t.get_active()&&(a.accent=e)}),b.set(e,t),v.append(t)}v.set_sensitive(a.accentMode===`custom`),g.connect(`notify::active`,()=>{a.accentMode=g.get_active()?`custom`:`system`}),h.add(_),s.add(h),a.subscribe(e=>{let t=m.get(e.colorScheme);t&&!t.get_active()&&t.set_active(!0);let n=b.get(e.accent);n&&!n.get_active()&&n.set_active(!0);let r=e.accentMode===`custom`;g.get_active()!==r&&g.set_active(r),v.set_sensitive(r)});let x=new e.PreferencesDialog({title:`Appearance`});return x.add(s),x}export{StorybookAppearance,buildAppearanceDialog};
|
package/lib/esm/application.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./_virtual/_rolldown/runtime.js";import{storybookDevtoolsExtension as e}from"./devtools-extension.js";import{installStorybookProbe as t,probeEnabled as n}from"./probe.js";import{STORYBOOK_CSS as r}from"./styles.js";import{StorybookWindow as i}from"./window.js";import a from"
|
|
1
|
+
import"./_virtual/_rolldown/runtime.js";import{storybookDevtoolsExtension as e}from"./devtools-extension.js";import{installStorybookProbe as t,probeEnabled as n}from"./probe.js";import{STORYBOOK_CSS as r}from"./styles.js";import{StorybookWindow as i}from"./window.js";import a from"gi://Adw?version=1";import o from"gi://Gdk?version=4.0";import s from"gi://Gtk?version=4.0";import c from"gi://Gio?version=2.0";import l from"gi://GObject?version=2.0";import{installDevtools as u}from"@gjsify/devtools";var d=class StorybookApplication extends a.Application{static{l.registerClass({GTypeName:`StorybookApplication`},StorybookApplication)}constructor(e){super({application_id:e.applicationId,flags:c.ApplicationFlags.DEFAULT_FLAGS}),this._window=null,this._options=e,this.connect(`startup`,()=>this._initStyles()),this.connect(`activate`,()=>this._onActivate())}_initStyles(){let e=new s.CssProvider;e.load_from_string(`${r}\n${this._options.css??``}`);let t=o.Display.get_default();if(!t){console.error(`No display found`);return}s.StyleContext.add_provider_for_display(t,e,s.STYLE_PROVIDER_PRIORITY_APPLICATION)}_onActivate(){if(!this._window){this._window=new i({application:this}),this._options.title&&this._window.set_title(this._options.title);try{this._window.populateSidebar(this._options.stories)}catch(e){console.error(`Failed to create story instances:`,e)}u(this,{enabled:this._options.devtools||void 0,extend:[e(this._window)]}),n()&&t(this,this._window,this._options.probe)}this._window.present()}};l.type_ensure(d.$gtype);export{d as StorybookApplication};
|
package/lib/esm/decorators.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./_virtual/_rolldown/runtime.js";import e from"
|
|
1
|
+
import"./_virtual/_rolldown/runtime.js";import e from"gi://Gio?version=2.0";import t from"gi://GLib?version=2.0";function installActionGroup(n,r,i){let a=new e.SimpleActionGroup;for(let n of i)if(typeof n.state==`boolean`){let r=e.SimpleAction.new_stateful(n.name,null,t.Variant.new_boolean(n.state));r.connect(`change-state`,(e,t)=>{e.set_state(t),n.onChange?.(t)}),a.add_action(r)}else if(typeof n.state==`string`){let r=e.SimpleAction.new_stateful(n.name,t.VariantType.new(`s`),t.Variant.new_string(n.state));r.connect(`change-state`,(e,t)=>{e.set_state(t),n.onChange?.(t)}),a.add_action(r)}else{let t=new e.SimpleAction({name:n.name});t.connect(`activate`,(e,t)=>n.onChange?.(t??null)),a.add_action(t)}return n.insert_action_group(r,a),a}function withActionGroup(e,t){return(n,r)=>{installActionGroup(r,e,t),n()}}export{installActionGroup,withActionGroup};
|
package/lib/esm/probe.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./_virtual/_rolldown/runtime.js";import{captureWidgetPng as e,dumpTree as t}from"@gjsify/devtools";import n from"
|
|
1
|
+
import"./_virtual/_rolldown/runtime.js";import{captureWidgetPng as e,dumpTree as t}from"@gjsify/devtools";import n from"gi://GLib?version=2.0";const r=[`AdwNavigationSplitView`,`GtkListBox`,`AdwOverlaySplitView`];function probeEnabled(){let e=n.getenv(`GJSIFY_STORYBOOK_PROBE`);if(e==null)return!1;let t=e.toLowerCase();return t!==``&&t!==`0`&&t!==`false`}function collectTypes(e,t){t.add(e.type);for(let n of e.children)collectTypes(n,t)}function installStorybookProbe(i,a,o={}){let s=o.requireChrome??r,c=o.out??n.getenv(`GJSIFY_STORYBOOK_PROBE_OUT`)??void 0,l=o.timeoutMs??8e3,u=o.storyWidget??n.getenv(`GJSIFY_STORYBOOK_PROBE_STORY_WIDGET`)??void 0,d=a.controller.listStories(),f=[...new Set(d.map(e=>e.category))],p=o.story??n.getenv(`GJSIFY_STORYBOOK_PROBE_STORY`)??d[0]?.title,m=p?a.openStoryByTitle(p):!1,h=a.activeStory,g=new Set;collectTypes(t(a,60,`toplevel:0`),g);let _=s.filter(e=>!g.has(e)),v=new Set;h&&collectTypes(t(h,60,`story`),v);let y=v.size,b=u?v.has(u):null,finish=e=>{let t=JSON.stringify(e);if(e.ok)console.log(`STORYBOOK PROBE: PASS ${t}`);else{console.error(`STORYBOOK PROBE: FAIL ${t}`);try{typeof process<`u`&&(process.exitCode=1)}catch{}}if(c)try{n.file_set_contents(c,JSON.stringify(e,null,2))}catch{}i.quit()},x=0;n.timeout_add(n.PRIORITY_DEFAULT,100,()=>{x+=100;let t=e(a),r=a.get_width()>0&&a.get_height()>0;if(!t&&!(x>=l))return n.SOURCE_CONTINUE;let i=h?e(h):null,o=d.length>=1&&f.length>=1&&_.length===0&&m&&h!=null&&y>1,c;return d.length<1?c=`no stories registered`:f.length<1?c=`no categories`:_.length>0?c=`chrome missing: ${_.join(`, `)}`:!m||h==null?c=`could not open story: ${p??`(none)`}`:y<=1&&(c=`opened story rendered an empty subtree`),o&&u&&!v.has(u)&&(o=!1,c=`story widget ${u} not found in the opened story subtree`),o&&r&&(!t||t.length===0)&&(o=!1,c=`window realized (${a.get_width()}x${a.get_height()}) but the GSK capture was empty`),finish({ok:o,reason:c,stories:d.length,categories:f,opened:m,activeStory:h?h.meta.title:null,requiredChrome:s,missingChrome:_,storySubtreeWidgets:y,storyWidgetPresent:b,windowRealized:r,windowPngBytes:t?t.length:0,storyPngBytes:i?i.length:0}),n.SOURCE_REMOVE})}export{installStorybookProbe,probeEnabled};
|
package/lib/esm/story-widget.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./_virtual/_rolldown/runtime.js";import e from"
|
|
1
|
+
import"./_virtual/_rolldown/runtime.js";import e from"gi://Adw?version=1";import t from"gi://Gtk?version=4.0";import{StoryViewBase as n}from"@gjsify/storybook-core";import r from"gi://GObject?version=2.0";import i from"gi://GLib?version=2.0";import{argsFromControls as a}from"@gjsify/stories";function buildGtkChrome(n){let r=new e.PreferencesPage,a=new e.PreferencesGroup,o=new t.Box({orientation:t.Orientation.VERTICAL,halign:t.Align.CENTER,valign:t.Align.CENTER,margin_top:12,margin_bottom:12,spacing:12,hexpand:!0});return o.add_css_class(`story-stage`),a.add(o),r.add(a),n.set_child(r),{root:n,hasStage:!0,setStageContent(e){let t=o.get_first_child();for(;t;)t.unparent(),t=o.get_first_child();o.append(e)},setChromeText(e,t){a.set_title(i.markup_escape_text(e,-1)),a.set_description(i.markup_escape_text(t,-1))}}}var StoryCore=class extends n{constructor(e,t,n){super(),this._widget=e,this.initBase(t,n)}createChrome(e){return buildGtkChrome(this._widget)}initialize(){this._widget.initialize()}updateArgs(e){this._widget.updateArgs(e)}teardown(){this._widget.teardown()}emitArgs(e){super.emitArgs(e),this._widget.notify(`args`)}},o=class StoryWidget extends e.Bin{static{r.registerClass({GTypeName:`StoryWidget`,Properties:{meta:r.ParamSpec.object(`meta`,`Meta`,`Story metadata`,r.ParamFlags.READWRITE,r.Object),story:r.ParamSpec.string(`story`,`Story Name`,`Story name`,r.ParamFlags.READWRITE,``),args:r.ParamSpec.object(`args`,`Args`,`Story arguments`,r.ParamFlags.READWRITE,r.Object)}},StoryWidget)}constructor(e,t={}){super(t),this._core=new StoryCore(this,e.meta,e.story)}static fromMeta(e,t){return{meta:e,story:t,args:a(e.controls)}}get meta(){return this._core.meta}get story(){return this._core.story}get args(){return this._core.args}set args(e){this._core.args=e}onArgsChanged(e){return this._core.onArgsChanged(e)}setArg(e,t){this._core.setArg(e,t)}initialize(){}updateArgs(e){}teardown(){}addContent(e){this._core.addContent(e)}};r.type_ensure(o.$gtype);export{o as StoryWidget};
|
package/lib/esm/window.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./_virtual/_rolldown/runtime.js";import{StorybookAppearance as e,buildAppearanceDialog as t}from"./appearance.js";import n from"
|
|
1
|
+
import"./_virtual/_rolldown/runtime.js";import{StorybookAppearance as e,buildAppearanceDialog as t}from"./appearance.js";import n from"gi://Adw?version=1";import r from"gi://Gdk?version=4.0";import i from"gi://Gtk?version=4.0";import{StorybookController as a,bindControl as o}from"@gjsify/storybook-core";import s from"gi://GObject?version=2.0";function adwControlWidgetFactory(){return{text(e,t){let r=new n.EntryRow({title:e});t&&r.set_tooltip_text(t);let i=null;return r.connect(`changed`,()=>i?.(r.get_text())),{node:r,get:()=>r.get_text(),set:e=>r.set_text(e),onChange:e=>{i=e}}},boolean(e,t){let r=new n.SwitchRow({title:e,subtitle:t??``}),i=null;return r.connect(`notify::active`,()=>i?.(r.get_active())),{node:r,get:()=>r.get_active(),set:e=>r.set_active(e),onChange:e=>{i=e}}},number(e){let t=n.SpinRow.new_with_range(e.min??0,e.max??100,e.step??1);t.set_title(e.label||e.name),e.description&&t.set_subtitle(e.description);let r=null;return t.connect(`changed`,()=>r?.(t.get_value())),{node:t,get:()=>t.get_value(),set:e=>t.set_value(e),onChange:e=>{r=e}}},range(e){return buildRangeWidget(e)},select(e){return buildSelectWidget(e)},color(e,t){return buildColorWidget(e,t)}}}function buildRangeWidget(e){let t=e.min??0,n=e.max??100,r=e.step??1,a=typeof e.min==`number`?e.min:0,o=Number.isInteger(r)&&Number.isInteger(a),s=new i.Adjustment({lower:t,upper:n,step_increment:r,value:a});s.step_increment=r;let c=new i.ListBoxRow({selectable:!1,activatable:!1});c.add_css_class(`story-range-row`);let l=new i.Box({orientation:i.Orientation.VERTICAL,spacing:6,margin_top:12,margin_bottom:12,margin_start:12,margin_end:12}),u=new i.Box({orientation:i.Orientation.HORIZONTAL,spacing:12}),d=new i.Label({label:e.label||e.name,halign:i.Align.START,hexpand:!0,ellipsize:3});d.add_css_class(`heading`);let formatValue=e=>o?String(Math.round(e)):e.toFixed(2),f=new i.Label({label:formatValue(a),halign:i.Align.END});if(f.add_css_class(`numeric`),f.add_css_class(`dim-label`),u.append(d),u.append(f),l.append(u),e.description){let t=new i.Label({label:e.description,halign:i.Align.START,xalign:0,wrap:!0,max_width_chars:32});t.add_css_class(`caption`),t.add_css_class(`dim-label`),l.append(t)}let p=new i.Scale({orientation:i.Orientation.HORIZONTAL,adjustment:s,draw_value:!1,hexpand:!0}),m=null,h=!1;return p.connect(`value-changed`,()=>{if(h)return;let e=p.get_value();if(o){let t=Math.round(e);if(t!==e){p.set_value(t);return}e=t}f.set_label(formatValue(e)),m?.(e)}),l.append(p),c.set_child(l),{node:c,get:()=>p.get_value(),set:e=>{h=!0,p.set_value(e),h=!1,f.set_label(formatValue(e))},onChange:e=>{m=e}}}function buildSelectWidget(e){let t=e.options??[],r=i.StringList.new(t.map(e=>e.label)),a=new n.ComboRow({title:e.label||e.name,subtitle:e.description??``,model:r}),o=null;return a.connect(`notify::selected`,()=>o?.(a.get_selected())),{node:a,get:()=>a.get_selected(),set:e=>a.set_selected(e),onChange:e=>{o=e}}}function buildColorWidget(e,t){let a=new n.ActionRow({title:e,subtitle:t??``}),o=new i.ColorDialogButton({dialog:new i.ColorDialog({title:e}),valign:i.Align.CENTER});a.add_suffix(o),a.set_activatable_widget(o);let channel=e=>Math.round(Math.max(0,Math.min(1,e))*255).toString(16).padStart(2,`0`),rgbaToHex=e=>`#${channel(e.red)}${channel(e.green)}${channel(e.blue)}`,s=null,c=!1;return o.connect(`notify::rgba`,()=>{c||s?.(rgbaToHex(o.get_rgba()))}),{node:a,get:()=>rgbaToHex(o.get_rgba()),set:e=>{let t=new r.RGBA;t.parse(e)&&(c=!0,o.set_rgba(t),c=!1)},onChange:e=>{s=e}}}var c=class StorybookWindow extends n.ApplicationWindow{static{s.registerClass({GTypeName:`StorybookWindow`},StorybookWindow)}constructor(t){super(t),this._appearance=new e,this._controlRows=[],this._rowByTitle=new Map,this._onSelect=null,this._suppressSelect=!1,this.set_default_size(1200,800),this.set_size_request(360,320),this.set_title(`Storybook`),this._buildUI(),this._controller=new a(this,e=>this._buildControls(e)),this._sidebar_list.connect(`row-selected`,this._onRowSelected.bind(this)),this._show_controls_button.connect(`toggled`,this._onToggleControls.bind(this)),this._controls_split_view.set_show_sidebar(!0)}_onRowSelected(e,t){if(this._suppressSelect||!t)return;let n=t;n.storyWidget&&this._onSelect?.(n.storyWidget)}get controller(){return this._controller}_buildControls(e){let t=e.meta.controls;if(!Array.isArray(t))return[];let n=adwControlWidgetFactory(),r=[];for(let i of t){if(!i?.name||!i?.type){console.warn(`Invalid control configuration:`,i);continue}let t=o(e,i,n);t&&r.push(t)}return r}_buildUI(){this._sidebar_list=new i.ListBox({selection_mode:i.SelectionMode.SINGLE}),this._sidebar_list.add_css_class(`navigation-sidebar`);let e=new i.ScrolledWindow({hexpand:!0,vexpand:!0,child:this._sidebar_list}),r=new n.HeaderBar({title_widget:new n.WindowTitle({title:`Stories`}),show_end_title_buttons:!1}),a=new n.ToolbarView({content:e,top_bar_style:n.ToolbarStyle.FLAT});a.add_top_bar(r);let o=new n.NavigationPage({title:`Stories`,tag:`stories`,child:a});this._content_area=new n.Bin({hexpand:!0,vexpand:!0});let s=new i.ScrolledWindow({hexpand:!0,vexpand:!0,child:this._content_area});s.add_css_class(`sb-preview-area`),this._control_panel=new n.PreferencesGroup({title:`Controls`});let c=new n.PreferencesPage;c.add(this._control_panel);let l=new i.ScrolledWindow({vexpand:!0,child:c});this._controls_split_view=new n.OverlaySplitView({show_sidebar:!0,sidebar_position:i.PackType.END,min_sidebar_width:280,max_sidebar_width:360,content:s,sidebar:l,css_classes:[`storybook-controls`]}),this._preview_title=new n.WindowTitle({title:`Preview`}),this._show_controls_button=new i.ToggleButton({icon_name:`sidebar-show-right-symbolic`,tooltip_text:`Toggle Controls`,active:!0});let u=new n.HeaderBar({title_widget:this._preview_title});u.pack_end(this._show_controls_button);let d=new i.Button({icon_name:`applications-graphics-symbolic`,tooltip_text:`Appearance`});d.connect(`clicked`,()=>t(this._appearance).present(this)),u.pack_end(d);let f=new n.ToolbarView({content:this._controls_split_view,top_bar_style:n.ToolbarStyle.FLAT});f.add_top_bar(u);let p=new n.NavigationPage({title:`Preview`,tag:`preview`,child:f});this._main_split_view=new n.NavigationSplitView({min_sidebar_width:220,max_sidebar_width:320,sidebar:o,content:p}),this.set_content(this._main_split_view);let m=n.BreakpointCondition.parse(`max-width: 720sp`);if(m){let e=new n.Breakpoint({condition:m});e.connect(`apply`,()=>{this._main_split_view.collapsed=!0,this._controls_split_view.collapsed=!0}),e.connect(`unapply`,()=>{this._main_split_view.collapsed=!1,this._controls_split_view.collapsed=!1}),this.add_breakpoint(e)}}_onToggleControls(e){this._controls_split_view.set_show_sidebar(e.get_active())}populateSidebar(e){this._controller.mount(e,!0)}renderSidebar(e,t){this._onSelect=t,this._suppressSelect=!0,this._clearSidebar(),this._rowByTitle.clear();for(let t of e){this._addCategoryToSidebar(t.category);for(let{instance:e,name:n}of t.stories)this._addStoryToSidebar(e,n)}this._suppressSelect=!1}markSelected(e){let t=this._rowByTitle.get(e);t&&this._sidebar_list.get_selected_row()!==t&&(this._suppressSelect=!0,this._sidebar_list.select_row(t),this._suppressSelect=!1)}setPreviewTitle(e){this._preview_title.set_title(e)}showPreview(e){this._content_area.set_child(e),this._main_split_view.get_collapsed()&&this._main_split_view.set_show_content(!0)}renderControls(e){this._clearControlPanel();for(let t of e){let e=t.view;e instanceof n.PreferencesRow&&e.set_use_markup(!1),this._control_panel.add(e),this._controlRows.push(e)}this._show_controls_button.set_active(!0)}_clearSidebar(){let e=this._sidebar_list.get_first_child();for(;e;){let t=e.get_next_sibling();e.unparent(),e=t}}_addCategoryToSidebar(e){let t=new i.ListBoxRow({selectable:!1}),n=new i.Label({label:e,halign:i.Align.START,margin_top:10,margin_bottom:4,margin_start:12,margin_end:12});n.add_css_class(`heading`),n.add_css_class(`dim-label`),t.set_child(n),this._sidebar_list.append(t)}_addStoryToSidebar(e,t){let n=new i.ListBoxRow,r=new i.Label({label:t||`Unnamed Story`,halign:i.Align.START,margin_start:20,margin_top:6,margin_bottom:6});n.set_child(r),this._sidebar_list.append(n),n.storyWidget=e,this._rowByTitle.set(e.meta.title,n)}_clearControlPanel(){for(let e of this._controlRows)this._control_panel.remove(e);this._controlRows=[]}get activeStory(){return this._controller.activeStory}openStoryByTitle(e){return this._controller.openStoryByTitle(e)}setActiveArg(e,t){return this._controller.setActiveArg(e,t)}};s.type_ensure(c.$gtype);export{c as StorybookWindow};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import Adw from '
|
|
1
|
+
import Adw from 'gi://Adw?version=1';
|
|
2
2
|
import { StorybookSettings } from '@gjsify/storybook-core';
|
|
3
3
|
/** Owns the GTK side of {@link StorybookSettings} — the style manager and the accent provider. */
|
|
4
4
|
export declare class StorybookAppearance {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import Gio from '
|
|
2
|
-
import GLib from '
|
|
1
|
+
import Gio from 'gi://Gio?version=2.0';
|
|
2
|
+
import GLib from 'gi://GLib?version=2.0';
|
|
3
3
|
import type Gtk from '@girs/gtk-4.0';
|
|
4
4
|
import type { StoryDecorator } from './story-widget.js';
|
|
5
5
|
/** Declarative description of one action to install in a story sandbox. */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import Adw from '
|
|
2
|
-
import GObject from '
|
|
3
|
-
import Gtk from '
|
|
1
|
+
import Adw from 'gi://Adw?version=1';
|
|
2
|
+
import GObject from 'gi://GObject?version=2.0';
|
|
3
|
+
import Gtk from 'gi://Gtk?version=4.0';
|
|
4
4
|
import { type StoryArgs, type StoryArgValue, type StoryMeta } from '@gjsify/stories';
|
|
5
5
|
export declare namespace StoryWidget {
|
|
6
6
|
interface ConstructorProps {
|
package/lib/types/window.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import Adw from '
|
|
1
|
+
import Adw from 'gi://Adw?version=1';
|
|
2
2
|
import type { StoryArgValue } from '@gjsify/stories';
|
|
3
3
|
import { type CategoryGroup, type ControlRow, StorybookController, type StorybookView } from '@gjsify/storybook-core';
|
|
4
4
|
import type { StoryModule, StoryWidget } from './story-widget.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gjsify/storybook",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.47.0",
|
|
4
4
|
"description": "Reusable GTK/Adwaita storybook for GJS — author *.story.ts and browse them in a generic component explorer",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"module": "lib/esm/index.js",
|
|
@@ -34,22 +34,22 @@
|
|
|
34
34
|
"ui"
|
|
35
35
|
],
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@girs/adw-1": "
|
|
38
|
-
"@girs/gdk-4.0": "
|
|
39
|
-
"@girs/gio-2.0": "
|
|
40
|
-
"@girs/gjs": "
|
|
41
|
-
"@girs/glib-2.0": "
|
|
42
|
-
"@girs/gobject-2.0": "
|
|
43
|
-
"@girs/gtk-4.0": "
|
|
44
|
-
"@gjsify/adwaita-app": "^0.
|
|
45
|
-
"@gjsify/adwaita-core": "^0.
|
|
46
|
-
"@gjsify/devtools": "^0.
|
|
47
|
-
"@gjsify/stories": "^0.
|
|
48
|
-
"@gjsify/storybook-core": "^0.
|
|
37
|
+
"@girs/adw-1": "4.6.0",
|
|
38
|
+
"@girs/gdk-4.0": "4.6.0",
|
|
39
|
+
"@girs/gio-2.0": "4.6.0",
|
|
40
|
+
"@girs/gjs": "4.6.0",
|
|
41
|
+
"@girs/glib-2.0": "4.6.0",
|
|
42
|
+
"@girs/gobject-2.0": "4.6.0",
|
|
43
|
+
"@girs/gtk-4.0": "4.6.0",
|
|
44
|
+
"@gjsify/adwaita-app": "^0.47.0",
|
|
45
|
+
"@gjsify/adwaita-core": "^0.47.0",
|
|
46
|
+
"@gjsify/devtools": "^0.47.0",
|
|
47
|
+
"@gjsify/stories": "^0.47.0",
|
|
48
|
+
"@gjsify/storybook-core": "^0.47.0"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@gjsify/cli": "^0.
|
|
52
|
-
"@gjsify/unit": "^0.
|
|
51
|
+
"@gjsify/cli": "^0.47.0",
|
|
52
|
+
"@gjsify/unit": "^0.47.0",
|
|
53
53
|
"@types/node": "^25.9.2",
|
|
54
54
|
"typescript": "^6.0.3"
|
|
55
55
|
},
|