@gardenerim/css 1.0.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.
Files changed (92) hide show
  1. package/CHANGELOG.md +121 -0
  2. package/LICENSE +21 -0
  3. package/README.md +591 -0
  4. package/dist/components/ai-compositions.min.css +2 -0
  5. package/dist/components/ai-extended.min.css +2 -0
  6. package/dist/components/ai.min.css +2 -0
  7. package/dist/components/auth-compositions.min.css +2 -0
  8. package/dist/components/basic.min.css +2 -0
  9. package/dist/components/catalog.min.css +2 -0
  10. package/dist/components/commerce-compositions.min.css +2 -0
  11. package/dist/components/content-compositions.min.css +2 -0
  12. package/dist/components/data-compositions.min.css +2 -0
  13. package/dist/components/data.min.css +2 -0
  14. package/dist/components/desktop-compositions.min.css +2 -0
  15. package/dist/components/desktop.min.css +2 -0
  16. package/dist/components/extended.min.css +2 -0
  17. package/dist/components/feedback.min.css +2 -0
  18. package/dist/components/form-compositions.min.css +2 -0
  19. package/dist/components/forms.min.css +2 -0
  20. package/dist/components/grid.min.css +2 -0
  21. package/dist/components/help.min.css +2 -0
  22. package/dist/components/layouts.min.css +2 -0
  23. package/dist/components/mobile-compositions.min.css +2 -0
  24. package/dist/components/navigation-compositions.min.css +2 -0
  25. package/dist/components/navigation.min.css +2 -0
  26. package/dist/components/page.min.css +2 -0
  27. package/dist/components/primitives.min.css +2 -0
  28. package/dist/components/recipes.min.css +2 -0
  29. package/dist/components/regions.min.css +2 -0
  30. package/dist/components/selection-compositions.min.css +2 -0
  31. package/dist/components/solution-compositions.min.css +2 -0
  32. package/dist/gardener.ai.css +236 -0
  33. package/dist/gardener.ai.min.css +3 -0
  34. package/dist/gardener.ai.min.css.map +7 -0
  35. package/dist/gardener.builds.json +7491 -0
  36. package/dist/gardener.capabilities.json +3784 -0
  37. package/dist/gardener.compatibility.json +1209 -0
  38. package/dist/gardener.components.css +3496 -0
  39. package/dist/gardener.components.min.css +3 -0
  40. package/dist/gardener.components.min.css.map +7 -0
  41. package/dist/gardener.core.css +1486 -0
  42. package/dist/gardener.core.min.css +3 -0
  43. package/dist/gardener.core.min.css.map +7 -0
  44. package/dist/gardener.css +7153 -0
  45. package/dist/gardener.d.ts +42 -0
  46. package/dist/gardener.electron.d.ts +5 -0
  47. package/dist/gardener.electron.js +24 -0
  48. package/dist/gardener.electron.min.js +3 -0
  49. package/dist/gardener.electron.min.js.map +7 -0
  50. package/dist/gardener.manifest.json +14557 -0
  51. package/dist/gardener.min.css +3 -0
  52. package/dist/gardener.min.css.map +7 -0
  53. package/dist/gardener.performance.json +1628 -0
  54. package/dist/gardener.public-api.json +2169 -0
  55. package/dist/gardener.recipes.json +1444 -0
  56. package/dist/gardener.runtime.js +2224 -0
  57. package/dist/gardener.runtime.min.js +3 -0
  58. package/dist/gardener.runtime.min.js.map +7 -0
  59. package/dist/gardener.tauri.d.ts +5 -0
  60. package/dist/gardener.tauri.js +28 -0
  61. package/dist/gardener.tauri.min.js +3 -0
  62. package/dist/gardener.tauri.min.js.map +7 -0
  63. package/dist/gardener.themes.css +1415 -0
  64. package/dist/gardener.themes.min.css +3 -0
  65. package/dist/gardener.themes.min.css.map +7 -0
  66. package/dist/gardener.utilities.css +1940 -0
  67. package/dist/gardener.utilities.json +92279 -0
  68. package/dist/gardener.utilities.min.css +3 -0
  69. package/dist/gardener.utilities.min.css.map +7 -0
  70. package/dist/platforms/gardener.desktop.min.css +2 -0
  71. package/dist/platforms/gardener.electron.min.css +2 -0
  72. package/dist/platforms/gardener.mobile.min.css +2 -0
  73. package/dist/platforms/gardener.tauri.min.css +2 -0
  74. package/dist/platforms/gardener.web.min.css +2 -0
  75. package/metadata/builds.schema.json +148 -0
  76. package/metadata/capabilities.json +3784 -0
  77. package/metadata/capabilities.schema.json +61 -0
  78. package/metadata/compatibility.json +1209 -0
  79. package/metadata/compatibility.schema.json +85 -0
  80. package/metadata/components.json +9082 -0
  81. package/metadata/components.schema.json +58 -0
  82. package/metadata/custom-build.schema.json +46 -0
  83. package/metadata/manifest.schema.json +47 -0
  84. package/metadata/performance-budgets.schema.json +103 -0
  85. package/metadata/performance-report.schema.json +194 -0
  86. package/metadata/public-api.json +2169 -0
  87. package/metadata/public-api.schema.json +165 -0
  88. package/metadata/recipes.json +1444 -0
  89. package/metadata/recipes.schema.json +39 -0
  90. package/metadata/schema.json +7 -0
  91. package/metadata/utilities.schema.json +29 -0
  92. package/package.json +177 -0
@@ -0,0 +1,42 @@
1
+ /** Gardener 1.0.0 runtime declarations. Generated from metadata/public-api.json. */
2
+ export type GardenerBehaviorName = "dialog" | "drawer" | "mobile-sheet" | "dropdown" | "tabs" | "accordion" | "auto-resize" | "combobox" | "password-toggle" | "clear-input" | "otp-input" | "password-strength" | "auth-timer" | "quantity-stepper" | "sku-selector" | "cart" | "coupon" | "pull-refresh" | "infinite-load" | "swipe-actions" | "wheel-picker" | "ai-composer" | "prompt-fill" | "ai-approval" | "ai-feedback" | "shortcut-recorder" | "desktop-tabs" | "native-file-picker" | "window-switcher" | "character-count" | "conditional-field" | "repeatable-field" | "tooltip" | "popover" | "tour" | "carousel" | "split-pane" | "tree" | "data-grid" | "table-sort" | "row-select" | "row-disclosure" | "column-toggle" | "data-filter" | "data-view" | "transfer" | "picker" | "cascader" | "saved-choice" | "builder-list" | "toast" | "copy" | "fullscreen" | "scroll-top" | "dropzone" | "nav-toggle" | "roving-nav" | "context-menu" | "scrollspy" | "jump-nav" | "upload-manager" | "file-browser" | "editor-shell" | "revision-compare" | "autosave" | "command-palette";
3
+ export type GardenerEventName = "add" | "approval" | "attachmentremove" | "authtimerexpired" | "authtimerstart" | "autosavestate" | "beforeapproval" | "beforeclose" | "beforefilepicker" | "beforeopen" | "beforepromptstop" | "beforepromptsubmit" | "beforetabclose" | "builderchange" | "cartchange" | "cartremove" | "cascadechange" | "change" | "clear" | "close" | "collapse" | "columnchange" | "composerstate" | "copy" | "count" | "couponchange" | "desktoptabchange" | "desktoptabclose" | "disclosure" | "dismiss" | "drop" | "editorchange" | "editorcommand" | "error" | "expand" | "feedbackchange" | "feedbacksubmit" | "filefilter" | "files" | "fileselect" | "fileview" | "filter" | "fullscreenchange" | "init" | "loadcomplete" | "loadmore" | "nativefiles" | "open" | "otpchange" | "otpcomplete" | "passwordstrength" | "pickerchange" | "promptfill" | "promptstop" | "promptsubmit" | "quantitychange" | "refresh" | "refreshcomplete" | "remove" | "resize" | "revisionview" | "savedchoice" | "selectionchange" | "shortcutchange" | "skuchange" | "sort" | "swipechange" | "toggle" | "transferchange" | "uploadadd" | "uploadchange" | "viewchange" | "wheelchange" | "windowactivate" | "windowselect";
4
+ export type GardenerRoot = Document | DocumentFragment | Element;
5
+
6
+ export interface GardenerBehaviorInstance {
7
+ destroy?: () => void;
8
+ [member: string]: unknown;
9
+ }
10
+
11
+ export type GardenerBehaviorFactory = (element: Element) => GardenerBehaviorInstance | null | void;
12
+
13
+ export interface GardenerToastOptions {
14
+ title?: string;
15
+ message?: string;
16
+ tone?: "success" | "warning" | "danger" | "info" | string;
17
+ timeout?: number;
18
+ }
19
+
20
+ export interface GardenerAPI {
21
+ readonly version: "1.0.0";
22
+ readonly behaviors: readonly GardenerBehaviorName[];
23
+ init(root?: GardenerRoot): Readonly<GardenerAPI>;
24
+ destroy(root?: GardenerRoot): void;
25
+ register(name: string, factory: GardenerBehaviorFactory): void;
26
+ getInstance(elementOrSelector: Element | string, name: string): GardenerBehaviorInstance | null;
27
+ getInstance(elementOrSelector: Element | string): GardenerBehaviorInstance | Record<string, GardenerBehaviorInstance> | null;
28
+ emit(element: EventTarget, name: GardenerEventName | string, detail?: Record<string, unknown>): boolean;
29
+ toast(options?: GardenerToastOptions): HTMLElement;
30
+ observe(): void;
31
+ }
32
+
33
+ export declare function init(root?: GardenerRoot): Readonly<GardenerAPI>;
34
+ export declare function destroy(root?: GardenerRoot): void;
35
+ export declare function register(name: string, factory: GardenerBehaviorFactory): void;
36
+ export declare function getInstance(elementOrSelector: Element | string, name: string): GardenerBehaviorInstance | null;
37
+ export declare function getInstance(elementOrSelector: Element | string): GardenerBehaviorInstance | Record<string, GardenerBehaviorInstance> | null;
38
+ export declare function emit(element: EventTarget, name: GardenerEventName | string, detail?: Record<string, unknown>): boolean;
39
+ export declare function toast(options?: GardenerToastOptions): HTMLElement;
40
+ export declare function observe(): void;
41
+ export declare const Gardener: Readonly<GardenerAPI>;
42
+ export default Gardener;
@@ -0,0 +1,5 @@
1
+ /** Gardener electron desktop adapter declarations. */
2
+ export type GardenerWindowAction = "minimize" | "maximize" | "close" | "drag";
3
+ export interface GardenerElectronBinding { readonly available: boolean; destroy(): void; }
4
+ export type GardenerElectronBridge = { minimize?: () => unknown; maximize?: () => unknown; close?: () => unknown; drag?: () => unknown; windowAction?: (action: GardenerWindowAction) => unknown };
5
+ export declare function bindElectronWindowControls(root?: Document | Element, injectedBridge?: GardenerElectronBridge | null): GardenerElectronBinding;
@@ -0,0 +1,24 @@
1
+ /** Bind to a narrow, context-isolated Electron preload API (never Node integration). */
2
+ export function bindElectronWindowControls(root = document, injectedBridge = null) {
3
+ const bridge = injectedBridge ?? globalThis.gardenerDesktop;
4
+ if (!bridge) return { available: false, destroy() {} };
5
+ const allowed = new Set(["minimize", "maximize", "close", "drag"]);
6
+ const controller = new AbortController();
7
+
8
+ root.addEventListener("click", (event) => {
9
+ const control = event.target.closest?.("[data-g-window-action]");
10
+ if (!control || !root.contains(control)) return;
11
+ const action = control.dataset.gWindowAction;
12
+ if (!allowed.has(action)) return;
13
+ if (typeof bridge[action] === "function") bridge[action]();
14
+ else if (typeof bridge.windowAction === "function") bridge.windowAction(action);
15
+ }, { signal: controller.signal });
16
+
17
+ return { available: true, destroy: () => controller.abort() };
18
+ }
19
+
20
+ /* Recommended preload shape:
21
+ contextBridge.exposeInMainWorld("gardenerDesktop", {
22
+ windowAction: (action) => ipcRenderer.send("gardener:window-action", action)
23
+ });
24
+ */
@@ -0,0 +1,3 @@
1
+ /*! Gardener v1.0.0 | MIT License | gardener.css */
2
+ function c(e=document,r=null){const n=r??globalThis.gardenerDesktop;if(!n)return{available:!1,destroy(){}};const a=new Set(["minimize","maximize","close","drag"]),i=new AbortController;return e.addEventListener("click",l=>{const o=l.target.closest?.("[data-g-window-action]");if(!o||!e.contains(o))return;const t=o.dataset.gWindowAction;a.has(t)&&(typeof n[t]=="function"?n[t]():typeof n.windowAction=="function"&&n.windowAction(t))},{signal:i.signal}),{available:!0,destroy:()=>i.abort()}}export{c as bindElectronWindowControls};
3
+ //# sourceMappingURL=gardener.electron.min.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["electron-adapter.js"],
4
+ "sourcesContent": ["/** Bind to a narrow, context-isolated Electron preload API (never Node integration). */\nexport function bindElectronWindowControls(root = document, injectedBridge = null) {\n const bridge = injectedBridge ?? globalThis.gardenerDesktop;\n if (!bridge) return { available: false, destroy() {} };\n const allowed = new Set([\"minimize\", \"maximize\", \"close\", \"drag\"]);\n const controller = new AbortController();\n\n root.addEventListener(\"click\", (event) => {\n const control = event.target.closest?.(\"[data-g-window-action]\");\n if (!control || !root.contains(control)) return;\n const action = control.dataset.gWindowAction;\n if (!allowed.has(action)) return;\n if (typeof bridge[action] === \"function\") bridge[action]();\n else if (typeof bridge.windowAction === \"function\") bridge.windowAction(action);\n }, { signal: controller.signal });\n\n return { available: true, destroy: () => controller.abort() };\n}\n\n/* Recommended preload shape:\ncontextBridge.exposeInMainWorld(\"gardenerDesktop\", {\n windowAction: (action) => ipcRenderer.send(\"gardener:window-action\", action)\n});\n*/\n"],
5
+ "mappings": ";AACO,SAASA,EAA2BC,EAAO,SAAUC,EAAiB,KAAM,CACjF,MAAMC,EAASD,GAAkB,WAAW,gBAC5C,GAAI,CAACC,EAAQ,MAAO,CAAE,UAAW,GAAO,SAAU,CAAC,CAAE,EACrD,MAAMC,EAAU,IAAI,IAAI,CAAC,WAAY,WAAY,QAAS,MAAM,CAAC,EAC3DC,EAAa,IAAI,gBAEvB,OAAAJ,EAAK,iBAAiB,QAAUK,GAAU,CACxC,MAAMC,EAAUD,EAAM,OAAO,UAAU,wBAAwB,EAC/D,GAAI,CAACC,GAAW,CAACN,EAAK,SAASM,CAAO,EAAG,OACzC,MAAMC,EAASD,EAAQ,QAAQ,cAC1BH,EAAQ,IAAII,CAAM,IACnB,OAAOL,EAAOK,CAAM,GAAM,WAAYL,EAAOK,CAAM,EAAE,EAChD,OAAOL,EAAO,cAAiB,YAAYA,EAAO,aAAaK,CAAM,EAChF,EAAG,CAAE,OAAQH,EAAW,MAAO,CAAC,EAEzB,CAAE,UAAW,GAAM,QAAS,IAAMA,EAAW,MAAM,CAAE,CAC9D",
6
+ "names": ["bindElectronWindowControls", "root", "injectedBridge", "bridge", "allowed", "controller", "event", "control", "action"]
7
+ }