@almadar/ui 6.56.0 → 6.58.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 (64) hide show
  1. package/dist/{ArbitraryClassCompiler-DvzdeHxc.d.ts → ArbitraryClassCompiler-tChQ3nVq.d.ts} +15 -1
  2. package/dist/{AwaitingSkeletonContext-DPgW__WV.d.ts → AwaitingSkeletonContext-Bh399p1x.d.ts} +1 -3
  3. package/dist/{Canvas3DHost-DfAhg6EH.d.ts → Canvas3DHost-BTvRPfsr.d.ts} +1 -1
  4. package/dist/{FileTree-DUi7e7Z8.d.ts → FileTree-BSfgp-HH.d.ts} +29 -2
  5. package/dist/{GameAudioProvider-DyBvYP2c.d.ts → GameAudioProvider-kXbonWTv.d.ts} +1 -1
  6. package/dist/Typography-LZTP72Y4.js +5 -0
  7. package/dist/{UISlotRenderer-QTHFT6Z4.js → UISlotRenderer-N5DFYE6K.js} +8 -8
  8. package/dist/avl/index.cjs +4940 -4265
  9. package/dist/avl/index.d.ts +74 -5
  10. package/dist/avl/index.js +68 -711
  11. package/dist/{avl-schema-parser-C0wnAp5x.d.ts → avl-schema-parser-CH1QoZw1.d.ts} +1 -1
  12. package/dist/{chunk-HCSJHRC4.js → chunk-4ZGXIW3B.js} +1 -1
  13. package/dist/{chunk-RNY5LJXJ.js → chunk-723MJUU3.js} +1 -1
  14. package/dist/{chunk-6EV3OEBQ.js → chunk-CHNC4UYE.js} +3 -2
  15. package/dist/{chunk-SGJHVPHC.js → chunk-GZGDBS4S.js} +2 -2
  16. package/dist/{chunk-Y53Q55H5.js → chunk-HA7CJWQX.js} +1123 -1121
  17. package/dist/{chunk-FQM37C56.js → chunk-HB3D3HUJ.js} +129 -79
  18. package/dist/{chunk-XZKGRSIO.js → chunk-I2ZNE5TD.js} +2522 -1188
  19. package/dist/{chunk-JRW33U35.js → chunk-I5QOYW2Z.js} +1 -1
  20. package/dist/{chunk-KQXXO42S.js → chunk-KJGVLXEN.js} +78 -1
  21. package/dist/{chunk-HRCR53OW.js → chunk-LZRW6GXG.js} +18 -3
  22. package/dist/{chunk-2LFBQ4IS.js → chunk-MZIDOJMD.js} +2 -2
  23. package/dist/{chunk-QGH4NAQO.js → chunk-N7JIG57B.js} +9 -4
  24. package/dist/chunk-YYYHH5BA.js +2519 -0
  25. package/dist/{cn-ClXGlIOY.d.ts → cn-DIql5232.d.ts} +152 -24
  26. package/dist/components/index.cjs +6917 -3102
  27. package/dist/components/index.d.ts +54 -101
  28. package/dist/components/index.js +14 -16
  29. package/dist/context/index.cjs +23 -0
  30. package/dist/context/index.d.ts +2 -2
  31. package/dist/context/index.js +20 -1
  32. package/dist/hooks/index.cjs +2544 -7
  33. package/dist/hooks/index.d.ts +4 -1
  34. package/dist/hooks/index.js +7 -6
  35. package/dist/lib/drawable/three/index.cjs +22 -6
  36. package/dist/lib/drawable/three/index.d.ts +4 -4
  37. package/dist/lib/drawable/three/index.js +7 -7
  38. package/dist/lib/index.cjs +18 -3
  39. package/dist/lib/index.d.ts +3 -3
  40. package/dist/lib/index.js +4 -5
  41. package/dist/locales/index.cjs +54 -9
  42. package/dist/locales/index.js +2 -2489
  43. package/dist/{paintDispatch-_6EhJCiL.d.ts → paintDispatch-BN8Vbzgs.d.ts} +1 -1
  44. package/dist/providers/index.cjs +4075 -2415
  45. package/dist/providers/index.d.ts +6 -6
  46. package/dist/providers/index.js +26 -18
  47. package/dist/runtime/index.cjs +4198 -2498
  48. package/dist/runtime/index.d.ts +4 -17
  49. package/dist/runtime/index.js +11 -10
  50. package/dist/ssr/index.cjs +23 -6
  51. package/dist/ssr/index.js +23 -6
  52. package/dist/{useEventBus-JUAH3EFW.js → useEventBus-SWRN475O.js} +1 -1
  53. package/dist/{verificationRegistry-CD7Xb40L.d.ts → verificationRegistry-CK76GUfH.d.ts} +1 -1
  54. package/locales/ar.json +18 -3
  55. package/locales/en.json +18 -3
  56. package/locales/sl.json +18 -3
  57. package/package.json +9 -8
  58. package/tailwind-preset.cjs +3 -0
  59. package/themes/_fonts.css +1 -1
  60. package/themes/_presets.css +1 -0
  61. package/themes/kflow.css +299 -0
  62. package/dist/Typography-7PDT62PG.js +0 -5
  63. package/dist/chunk-F4ZTPKZL.js +0 -284
  64. package/dist/chunk-OKWD7LPO.js +0 -80
@@ -1,9 +1,9 @@
1
- import { EventPayload, OrbitalDefinition, ServiceParams, TraitConfig, UserContext, ResolvedTraitBinding, ResolvedPage, ResolvedEntity, ResolvedTrait, ResolvedIR, OrbitalSchema, PatternConfig, ResolvedPatternProps, EventSource, SExpr, EntityData, MessageCatalogs } from '@almadar/core';
1
+ import { EventPayload, OrbitalDefinition, PersistenceAdapter, ServiceParams, TraitConfig, UserContext, ResolvedTraitBinding, ResolvedPage, ResolvedEntity, ResolvedTrait, ResolvedIR, OrbitalSchema, PatternConfig, ResolvedPatternProps, EventSource, SExpr, EntityData, MessageCatalogs } from '@almadar/core';
2
2
  export { ResolvedEntity, ResolvedIR, ResolvedPage, ResolvedTrait, ResolvedTraitBinding } from '@almadar/core';
3
- import { TraitState, EventTransport, PersistenceAdapter, AccessTokenProvider, SchemaLoader } from '@almadar/runtime';
3
+ import { TraitState, EventTransport, AccessTokenProvider, SchemaLoader } from '@almadar/runtime';
4
4
  export { AccessTokenProvider, ClientEventBus, CreateClientEffectHandlersOptions, SlotSetter, createClientEffectHandlers } from '@almadar/runtime';
5
- import { E as EntityBindingSource, A as AwaitingSkeletonSource, S as ServerBridgeTransport } from '../AwaitingSkeletonContext-DPgW__WV.js';
6
- export { a as EntitySchemaContextValue, b as EntitySchemaProvider, c as EntitySchemaProviderProps, d as ServerBridgeContextValue, e as ServerBridgeProvider, T as TraitContext, f as TraitContextValue, g as TraitInstance, h as TraitProvider, i as TraitProviderProps, u as useEntitySchema, j as useEntitySchemaOptional, k as useServerBridge, l as useTrait, m as useTraitContext } from '../AwaitingSkeletonContext-DPgW__WV.js';
5
+ import { E as EntityBindingSource, A as AwaitingSkeletonSource, S as ServerBridgeTransport } from '../AwaitingSkeletonContext-Bh399p1x.js';
6
+ export { a as EntitySchemaContextValue, b as EntitySchemaProvider, c as EntitySchemaProviderProps, d as ServerBridgeContextValue, e as ServerBridgeProvider, T as TraitContext, f as TraitContextValue, g as TraitInstance, h as TraitProvider, i as TraitProviderProps, u as useEntitySchema, j as useEntitySchemaOptional, k as useServerBridge, l as useTrait, m as useTraitContext } from '../AwaitingSkeletonContext-Bh399p1x.js';
7
7
  import { c as useUISlots } from '../UISlotContext-CS487Uoc.js';
8
8
  export { PERF_NAMESPACE, PerfEntry, PreparedPreviewSchema, adjustSchemaForMockData, buildMockData, clearPerf, perfEnd, perfStart, perfTime, prepareSchemaForPreview, wrapCallbackForEvent } from '@almadar/runtime/ui';
9
9
  import React__default, { ReactNode } from 'react';
@@ -247,19 +247,6 @@ interface OrbPreviewProps {
247
247
  */
248
248
  onUnmatchedNavigate?: (path: string) => void;
249
249
  }
250
- /**
251
- * Renders a live preview of an Orbital schema.
252
- *
253
- * Uses static imports for all runtime components to ensure providers
254
- * and hooks share the same module instances (no context duplication).
255
- *
256
- * @example
257
- * ```tsx
258
- * <OrbPreview schema={orbJsonString} height="300px" />
259
- * <OrbPreview schema={schema} autoMock />
260
- * <OrbPreview schema={schema} serverUrl="/api/orbitals" />
261
- * ```
262
- */
263
250
  declare function OrbPreview({ schema, mockData, autoMock, height, className, serverUrl, transport, getAccessToken, initialPagePath, isolated, fit, onPageChange, user, localFallbackTimeoutMs, themeOverride, lazyLoader, schemaPath, onUnmatchedNavigate, }: OrbPreviewProps): React__default.ReactElement;
264
251
  declare namespace OrbPreview {
265
252
  var displayName: string;
@@ -1,18 +1,19 @@
1
- export { BrowserPlayground, OrbPreview, adjustSchemaForMockData, buildMockData, clearSchemaCache, prepareSchemaForPreview, useResolvedSchema, useTraitStateMachine } from '../chunk-FQM37C56.js';
1
+ export { BrowserPlayground, OrbPreview, adjustSchemaForMockData, buildMockData, clearSchemaCache, prepareSchemaForPreview, useResolvedSchema, useTraitStateMachine } from '../chunk-HB3D3HUJ.js';
2
2
  export { assertUniqueSlotsPerHost } from '../chunk-O2EIWXWE.js';
3
- import '../chunk-QGH4NAQO.js';
3
+ import '../chunk-N7JIG57B.js';
4
4
  import '../chunk-VHTJRS2N.js';
5
- export { wrapCallbackForEvent } from '../chunk-XZKGRSIO.js';
6
- import '../chunk-Y53Q55H5.js';
7
- import '../chunk-HCSJHRC4.js';
8
- import '../chunk-JRW33U35.js';
5
+ import '../chunk-YYYHH5BA.js';
6
+ export { wrapCallbackForEvent } from '../chunk-I2ZNE5TD.js';
7
+ import '../chunk-HA7CJWQX.js';
8
+ import '../chunk-4ZGXIW3B.js';
9
+ import '../chunk-I5QOYW2Z.js';
9
10
  import '../chunk-XJTHMW4G.js';
10
- import { useEventBus } from '../chunk-6EV3OEBQ.js';
11
- export { PERF_NAMESPACE, clearPerf, perfEnd, perfStart, perfTime, profilerOnRender, usePerfBuffer } from '../chunk-KQXXO42S.js';
11
+ import { useEventBus } from '../chunk-CHNC4UYE.js';
12
+ export { PERF_NAMESPACE, clearPerf, perfEnd, perfStart, perfTime, profilerOnRender, usePerfBuffer } from '../chunk-KJGVLXEN.js';
12
13
  import '../chunk-Q47ZN2DW.js';
13
14
  import '../chunk-64WACXM7.js';
14
- import '../chunk-RNY5LJXJ.js';
15
- import '../chunk-HRCR53OW.js';
15
+ import '../chunk-723MJUU3.js';
16
+ import '../chunk-LZRW6GXG.js';
16
17
  import '../chunk-PQKU62LK.js';
17
18
  import '../chunk-PEST66PN.js';
18
19
  import '../chunk-QPXIAUJD.js';
@@ -3,9 +3,9 @@
3
3
  var React17 = require('react');
4
4
  var logger = require('@almadar/logger');
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
+ var core = require('@almadar/core');
6
7
  var LucideIcons2 = require('lucide-react');
7
8
  require('react-router-dom');
8
- var core = require('@almadar/core');
9
9
 
10
10
  function _interopNamespace(e) {
11
11
  if (e && e.__esModule) return e;
@@ -2667,7 +2667,7 @@ function useEventBus() {
2667
2667
  return {
2668
2668
  ...baseBus,
2669
2669
  emit: (type, payload, source) => {
2670
- if (typeof type === "string" && type.startsWith("UI:") && !type.slice(3).includes(".") && !source?.trait) {
2670
+ if (typeof type === "string" && type.startsWith("UI:") && !type.slice(3).includes(".") && !core.isSystemUiEvent(type.slice(3)) && !source?.trait) {
2671
2671
  scopeLog.warn("emit:bare-key-no-scope", { type });
2672
2672
  }
2673
2673
  baseBus.emit(type, payload, source);
@@ -2677,7 +2677,7 @@ function useEventBus() {
2677
2677
  return {
2678
2678
  ...baseBus,
2679
2679
  emit: (type, payload, source) => {
2680
- if (typeof type === "string" && type.startsWith("UI:")) {
2680
+ if (typeof type === "string" && type.startsWith("UI:") && !core.isSystemUiEvent(type.slice(3))) {
2681
2681
  const tail = type.slice(3);
2682
2682
  const isQualified = tail.includes(".");
2683
2683
  const event = isQualified ? tail.split(".").slice(2).join(".") : tail;
@@ -3442,8 +3442,8 @@ var en_default = {
3442
3442
  "avl.emits": "emits {{event}}",
3443
3443
  "avl.pageLayout": "Page Layout",
3444
3444
  "avl.overlaySuffix": "(overlay)",
3445
- "avl.stateCount": "{{count}} states",
3446
- "avl.transitionCount": "{{count}} transitions",
3445
+ "avl.stateCount": "states: {{count}}",
3446
+ "avl.transitionCount": "transitions: {{count}}",
3447
3447
  "avl.listensRail": "listens",
3448
3448
  "avl.emitsRail": "emits",
3449
3449
  "avl.now": "now",
@@ -4030,6 +4030,9 @@ var en_default = {
4030
4030
  "propertyInspector.tier.infra": "infra",
4031
4031
  "propertyInspector.tier.internal": "internal",
4032
4032
  "upload.error.readFailed": "Could not read the selected file",
4033
+ "selection.ask": "Ask",
4034
+ "selection.note": "Note",
4035
+ "selection.toolbar": "Selection actions",
4033
4036
  "qrScanner.apiUnavailable": "Camera API not available in this environment",
4034
4037
  "themeToggle.switchToLight": "Switch to light mode",
4035
4038
  "themeToggle.switchToDark": "Switch to dark mode",
@@ -4324,7 +4327,19 @@ var en_default = {
4324
4327
  "agentChat.copied": "Copied",
4325
4328
  "agentChat.today": "Today",
4326
4329
  "agentChat.yesterday": "Yesterday",
4327
- "agentChat.emptyDescription": "Ask in your own words \u2014 the assistant can look things up and make changes for you."
4330
+ "agentChat.emptyDescription": "Ask in your own words \u2014 the assistant can look things up and make changes for you.",
4331
+ "avl.effectCategory.ui": "Screen \u2014 changes what the user sees",
4332
+ "avl.effectCategory.data": "Data \u2014 reads, changes or saves records",
4333
+ "avl.effectCategory.communication": "Messages \u2014 sends an event, a notification or a request",
4334
+ "avl.effectCategory.lifecycle": "Lifecycle \u2014 starts or removes running instances",
4335
+ "avl.effectCategory.control": "Flow \u2014 decides what runs next",
4336
+ "avl.effectCategory.async": "Timing \u2014 waits, delays or runs things together",
4337
+ "avl.effectCategory.compute": "Compute \u2014 runs a model or a calculation",
4338
+ "avl.effectCategory.system": "System \u2014 works with the platform and its tools",
4339
+ "avl.stateInitial": "start",
4340
+ "avl.stateTerminal": "end",
4341
+ "avl.guardCaption": "The transition only fires when this check is true.",
4342
+ "avl.effectsCaption": "What runs, in order, when the transition fires."
4328
4343
  };
4329
4344
 
4330
4345
  // lib/format.ts
@@ -4386,6 +4401,8 @@ function formatValue(value, format, fmt = {}) {
4386
4401
 
4387
4402
  // lib/inlineText.ts
4388
4403
  var INLINE_TEXT_ATTR = "data-inline-text";
4404
+
4405
+ // hooks/useTranslate.ts
4389
4406
  var { $meta: _meta2, ...coreMessages2 } = en_default;
4390
4407
  var coreLocale2 = coreMessages2;
4391
4408
  var I18nContext = React17.createContext({
package/dist/ssr/index.js CHANGED
@@ -2,10 +2,10 @@ import * as React17 from 'react';
2
2
  import React17__default, { createContext, useCallback, useState, useRef, useEffect, useContext, useMemo, useSyncExternalStore, useLayoutEffect, useId } from 'react';
3
3
  import { createLogger } from '@almadar/logger';
4
4
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
5
+ import { LOADING_STATE_MARKER, isSystemUiEvent } from '@almadar/core';
5
6
  import * as LucideIcons2 from 'lucide-react';
6
7
  import { Loader2, X } from 'lucide-react';
7
8
  import 'react-router-dom';
8
- import { LOADING_STATE_MARKER } from '@almadar/core';
9
9
 
10
10
  // node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs
11
11
  function r(e) {
@@ -2646,7 +2646,7 @@ function useEventBus() {
2646
2646
  return {
2647
2647
  ...baseBus,
2648
2648
  emit: (type, payload, source) => {
2649
- if (typeof type === "string" && type.startsWith("UI:") && !type.slice(3).includes(".") && !source?.trait) {
2649
+ if (typeof type === "string" && type.startsWith("UI:") && !type.slice(3).includes(".") && !isSystemUiEvent(type.slice(3)) && !source?.trait) {
2650
2650
  scopeLog.warn("emit:bare-key-no-scope", { type });
2651
2651
  }
2652
2652
  baseBus.emit(type, payload, source);
@@ -2656,7 +2656,7 @@ function useEventBus() {
2656
2656
  return {
2657
2657
  ...baseBus,
2658
2658
  emit: (type, payload, source) => {
2659
- if (typeof type === "string" && type.startsWith("UI:")) {
2659
+ if (typeof type === "string" && type.startsWith("UI:") && !isSystemUiEvent(type.slice(3))) {
2660
2660
  const tail = type.slice(3);
2661
2661
  const isQualified = tail.includes(".");
2662
2662
  const event = isQualified ? tail.split(".").slice(2).join(".") : tail;
@@ -3421,8 +3421,8 @@ var en_default = {
3421
3421
  "avl.emits": "emits {{event}}",
3422
3422
  "avl.pageLayout": "Page Layout",
3423
3423
  "avl.overlaySuffix": "(overlay)",
3424
- "avl.stateCount": "{{count}} states",
3425
- "avl.transitionCount": "{{count}} transitions",
3424
+ "avl.stateCount": "states: {{count}}",
3425
+ "avl.transitionCount": "transitions: {{count}}",
3426
3426
  "avl.listensRail": "listens",
3427
3427
  "avl.emitsRail": "emits",
3428
3428
  "avl.now": "now",
@@ -4009,6 +4009,9 @@ var en_default = {
4009
4009
  "propertyInspector.tier.infra": "infra",
4010
4010
  "propertyInspector.tier.internal": "internal",
4011
4011
  "upload.error.readFailed": "Could not read the selected file",
4012
+ "selection.ask": "Ask",
4013
+ "selection.note": "Note",
4014
+ "selection.toolbar": "Selection actions",
4012
4015
  "qrScanner.apiUnavailable": "Camera API not available in this environment",
4013
4016
  "themeToggle.switchToLight": "Switch to light mode",
4014
4017
  "themeToggle.switchToDark": "Switch to dark mode",
@@ -4303,7 +4306,19 @@ var en_default = {
4303
4306
  "agentChat.copied": "Copied",
4304
4307
  "agentChat.today": "Today",
4305
4308
  "agentChat.yesterday": "Yesterday",
4306
- "agentChat.emptyDescription": "Ask in your own words \u2014 the assistant can look things up and make changes for you."
4309
+ "agentChat.emptyDescription": "Ask in your own words \u2014 the assistant can look things up and make changes for you.",
4310
+ "avl.effectCategory.ui": "Screen \u2014 changes what the user sees",
4311
+ "avl.effectCategory.data": "Data \u2014 reads, changes or saves records",
4312
+ "avl.effectCategory.communication": "Messages \u2014 sends an event, a notification or a request",
4313
+ "avl.effectCategory.lifecycle": "Lifecycle \u2014 starts or removes running instances",
4314
+ "avl.effectCategory.control": "Flow \u2014 decides what runs next",
4315
+ "avl.effectCategory.async": "Timing \u2014 waits, delays or runs things together",
4316
+ "avl.effectCategory.compute": "Compute \u2014 runs a model or a calculation",
4317
+ "avl.effectCategory.system": "System \u2014 works with the platform and its tools",
4318
+ "avl.stateInitial": "start",
4319
+ "avl.stateTerminal": "end",
4320
+ "avl.guardCaption": "The transition only fires when this check is true.",
4321
+ "avl.effectsCaption": "What runs, in order, when the transition fires."
4307
4322
  };
4308
4323
 
4309
4324
  // lib/format.ts
@@ -4365,6 +4380,8 @@ function formatValue(value, format, fmt = {}) {
4365
4380
 
4366
4381
  // lib/inlineText.ts
4367
4382
  var INLINE_TEXT_ATTR = "data-inline-text";
4383
+
4384
+ // hooks/useTranslate.ts
4368
4385
  var { $meta: _meta2, ...coreMessages2 } = en_default;
4369
4386
  var coreLocale2 = coreMessages2;
4370
4387
  var I18nContext = createContext({
@@ -1,2 +1,2 @@
1
- export { useEventBus_default as default, getGlobalEventBus, setGlobalEventBus, useEmitEvent, useEventBus, useEventListener, useEventSubscription } from './chunk-6EV3OEBQ.js';
1
+ export { useEventBus_default as default, getGlobalEventBus, setGlobalEventBus, useEmitEvent, useEventBus, useEventListener, useEventSubscription } from './chunk-CHNC4UYE.js';
2
2
  import './chunk-QPXIAUJD.js';
@@ -1,4 +1,4 @@
1
- import { D as DrawableNode } from './paintDispatch-_6EhJCiL.js';
1
+ import { D as DrawableNode } from './paintDispatch-BN8Vbzgs.js';
2
2
  import { OrbitalVerificationAPI, TraitStateSnapshot, EventPayload, BusEvent, VerificationCheck, BridgeHealth, VerificationSnapshot, VerificationSummary, TransitionTrace, OrbitalEventRequest, OrbitalEventResponse, ServerResponseTrace, EffectTrace, CheckStatus, ServerEffectResult, AssetLoadStatus } from '@almadar/core';
3
3
  import { EventTransport } from '@almadar/runtime';
4
4
 
package/locales/ar.json CHANGED
@@ -352,8 +352,8 @@
352
352
  "avl.emits": "يُصدر {{event}}",
353
353
  "avl.pageLayout": "تخطيط الصفحة",
354
354
  "avl.overlaySuffix": "(تراكب)",
355
- "avl.stateCount": "{{count}} حالات",
356
- "avl.transitionCount": "{{count}} انتقالات",
355
+ "avl.stateCount": "الحالات: {{count}}",
356
+ "avl.transitionCount": "الانتقالات: {{count}}",
357
357
  "avl.listensRail": "يستمع",
358
358
  "avl.emitsRail": "يُطلق",
359
359
  "avl.now": "الآن",
@@ -944,6 +944,9 @@
944
944
  "propertyInspector.tier.infra": "البنية التحتية",
945
945
  "propertyInspector.tier.internal": "داخلي",
946
946
  "upload.error.readFailed": "تعذّرت قراءة الملف المحدد",
947
+ "selection.ask": "اسأل",
948
+ "selection.note": "ملاحظة",
949
+ "selection.toolbar": "إجراءات التحديد",
947
950
  "qrScanner.apiUnavailable": "واجهة الكاميرا غير متاحة في هذه البيئة",
948
951
  "themeToggle.switchToLight": "التبديل إلى الوضع الفاتح",
949
952
  "themeToggle.switchToDark": "التبديل إلى الوضع الداكن",
@@ -1238,5 +1241,17 @@
1238
1241
  "agentChat.copied": "تم النسخ",
1239
1242
  "agentChat.today": "اليوم",
1240
1243
  "agentChat.yesterday": "أمس",
1241
- "agentChat.emptyDescription": "اسأل بكلماتك — يستطيع المساعد البحث عن المعلومات وإجراء التغييرات نيابةً عنك."
1244
+ "agentChat.emptyDescription": "اسأل بكلماتك — يستطيع المساعد البحث عن المعلومات وإجراء التغييرات نيابةً عنك.",
1245
+ "avl.effectCategory.ui": "الشاشة — تغيّر ما يراه المستخدم",
1246
+ "avl.effectCategory.data": "البيانات — تقرأ السجلات أو تغيّرها أو تحفظها",
1247
+ "avl.effectCategory.communication": "الرسائل — ترسل حدثًا أو إشعارًا أو طلبًا",
1248
+ "avl.effectCategory.lifecycle": "دورة الحياة — تبدأ نسخًا قيد التشغيل أو تزيلها",
1249
+ "avl.effectCategory.control": "التدفق — تقرّر ما يُنفَّذ بعد ذلك",
1250
+ "avl.effectCategory.async": "التوقيت — تنتظر أو تؤخّر أو تشغّل الأشياء معًا",
1251
+ "avl.effectCategory.compute": "الحوسبة — تشغّل نموذجًا أو عملية حسابية",
1252
+ "avl.effectCategory.system": "النظام — تتعامل مع المنصة وأدواتها",
1253
+ "avl.stateInitial": "البداية",
1254
+ "avl.stateTerminal": "النهاية",
1255
+ "avl.guardCaption": "لا يحدث الانتقال إلا عندما يكون هذا الشرط صحيحًا.",
1256
+ "avl.effectsCaption": "ما يُنفَّذ، بالترتيب، عند حدوث الانتقال."
1242
1257
  }
package/locales/en.json CHANGED
@@ -356,8 +356,8 @@
356
356
  "avl.emits": "emits {{event}}",
357
357
  "avl.pageLayout": "Page Layout",
358
358
  "avl.overlaySuffix": "(overlay)",
359
- "avl.stateCount": "{{count}} states",
360
- "avl.transitionCount": "{{count}} transitions",
359
+ "avl.stateCount": "states: {{count}}",
360
+ "avl.transitionCount": "transitions: {{count}}",
361
361
  "avl.listensRail": "listens",
362
362
  "avl.emitsRail": "emits",
363
363
  "avl.now": "now",
@@ -944,6 +944,9 @@
944
944
  "propertyInspector.tier.infra": "infra",
945
945
  "propertyInspector.tier.internal": "internal",
946
946
  "upload.error.readFailed": "Could not read the selected file",
947
+ "selection.ask": "Ask",
948
+ "selection.note": "Note",
949
+ "selection.toolbar": "Selection actions",
947
950
  "qrScanner.apiUnavailable": "Camera API not available in this environment",
948
951
  "themeToggle.switchToLight": "Switch to light mode",
949
952
  "themeToggle.switchToDark": "Switch to dark mode",
@@ -1238,5 +1241,17 @@
1238
1241
  "agentChat.copied": "Copied",
1239
1242
  "agentChat.today": "Today",
1240
1243
  "agentChat.yesterday": "Yesterday",
1241
- "agentChat.emptyDescription": "Ask in your own words — the assistant can look things up and make changes for you."
1244
+ "agentChat.emptyDescription": "Ask in your own words — the assistant can look things up and make changes for you.",
1245
+ "avl.effectCategory.ui": "Screen — changes what the user sees",
1246
+ "avl.effectCategory.data": "Data — reads, changes or saves records",
1247
+ "avl.effectCategory.communication": "Messages — sends an event, a notification or a request",
1248
+ "avl.effectCategory.lifecycle": "Lifecycle — starts or removes running instances",
1249
+ "avl.effectCategory.control": "Flow — decides what runs next",
1250
+ "avl.effectCategory.async": "Timing — waits, delays or runs things together",
1251
+ "avl.effectCategory.compute": "Compute — runs a model or a calculation",
1252
+ "avl.effectCategory.system": "System — works with the platform and its tools",
1253
+ "avl.stateInitial": "start",
1254
+ "avl.stateTerminal": "end",
1255
+ "avl.guardCaption": "The transition only fires when this check is true.",
1256
+ "avl.effectsCaption": "What runs, in order, when the transition fires."
1242
1257
  }
package/locales/sl.json CHANGED
@@ -352,8 +352,8 @@
352
352
  "avl.emits": "oddaja {{event}}",
353
353
  "avl.pageLayout": "Postavitev strani",
354
354
  "avl.overlaySuffix": "(prekrivni sloj)",
355
- "avl.stateCount": "{{count}} stanj",
356
- "avl.transitionCount": "{{count}} prehodov",
355
+ "avl.stateCount": "stanja: {{count}}",
356
+ "avl.transitionCount": "prehodi: {{count}}",
357
357
  "avl.listensRail": "posluša",
358
358
  "avl.emitsRail": "odda",
359
359
  "avl.now": "zdaj",
@@ -944,6 +944,9 @@
944
944
  "propertyInspector.tier.infra": "infrastruktura",
945
945
  "propertyInspector.tier.internal": "notranje",
946
946
  "upload.error.readFailed": "Izbrane datoteke ni bilo mogoče prebrati",
947
+ "selection.ask": "Vprašaj",
948
+ "selection.note": "Opomba",
949
+ "selection.toolbar": "Dejanja izbora",
947
950
  "qrScanner.apiUnavailable": "API kamere v tem okolju ni na voljo",
948
951
  "themeToggle.switchToLight": "Preklopi na svetli način",
949
952
  "themeToggle.switchToDark": "Preklopi na temni način",
@@ -1238,5 +1241,17 @@
1238
1241
  "agentChat.copied": "Kopirano",
1239
1242
  "agentChat.today": "Danes",
1240
1243
  "agentChat.yesterday": "Včeraj",
1241
- "agentChat.emptyDescription": "Vprašajte s svojimi besedami — pomočnik lahko poišče podatke in namesto vas naredi spremembe."
1244
+ "agentChat.emptyDescription": "Vprašajte s svojimi besedami — pomočnik lahko poišče podatke in namesto vas naredi spremembe.",
1245
+ "avl.effectCategory.ui": "Zaslon — spremeni, kar vidi uporabnik",
1246
+ "avl.effectCategory.data": "Podatki — bere, spreminja ali shranjuje zapise",
1247
+ "avl.effectCategory.communication": "Sporočila — pošlje dogodek, obvestilo ali zahtevo",
1248
+ "avl.effectCategory.lifecycle": "Življenjski cikel — zažene ali odstrani delujoče primerke",
1249
+ "avl.effectCategory.control": "Tok — odloči, kaj se izvede naslednje",
1250
+ "avl.effectCategory.async": "Časovanje — čaka, zamakne ali izvaja stvari hkrati",
1251
+ "avl.effectCategory.compute": "Izračun — zažene model ali izračun",
1252
+ "avl.effectCategory.system": "Sistem — dela s platformo in njenimi orodji",
1253
+ "avl.stateInitial": "začetek",
1254
+ "avl.stateTerminal": "konec",
1255
+ "avl.guardCaption": "Prehod se zgodi le, ko je ta pogoj izpolnjen.",
1256
+ "avl.effectsCaption": "Kaj se izvede, po vrsti, ko se prehod zgodi."
1242
1257
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@almadar/ui",
3
- "version": "6.56.0",
3
+ "version": "6.58.0",
4
4
  "description": "React UI components, hooks, and providers for Almadar",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -126,12 +126,13 @@
126
126
  "access": "public"
127
127
  },
128
128
  "dependencies": {
129
- "@almadar/core": "^10.117.0",
130
- "@almadar/evaluator": "^2.54.0",
131
- "@almadar/logger": "^1.16.0",
132
- "@almadar/runtime": "^6.103.0",
133
- "@almadar/std": "^16.242.0",
134
- "@almadar/syntax": "^1.19.0",
129
+ "@almadar/core": "^10.120.0",
130
+ "@almadar/db": "^0.1.1",
131
+ "@almadar/evaluator": "^2.55.1",
132
+ "@almadar/logger": "^1.17.0",
133
+ "@almadar/runtime": "^6.105.0",
134
+ "@almadar/std": "^16.245.0",
135
+ "@almadar/syntax": "^1.19.1",
135
136
  "@dnd-kit/core": "^6.3.1",
136
137
  "@dnd-kit/sortable": "^10.0.0",
137
138
  "@dnd-kit/utilities": "^3.2.2",
@@ -191,7 +192,7 @@
191
192
  }
192
193
  },
193
194
  "devDependencies": {
194
- "@almadar-io/behaviors": "^0.16.189",
195
+ "@almadar-io/behaviors": "^0.16.193",
195
196
  "@almadar/eslint-plugin": "^2.21.0",
196
197
  "@react-three/drei": "^10.7.7",
197
198
  "@react-three/fiber": "^9.6.0",
@@ -462,6 +462,9 @@ module.exports = {
462
462
 
463
463
  // Auto-added by audit-tailwind-safelist.ts (2026-10-04)
464
464
  'bg-[var(--surface-diagram)]',
465
+
466
+ // Auto-added by audit-tailwind-safelist.ts (2026-10-05)
467
+ 'hover:bg-accent/15',
465
468
  ],
466
469
  theme: {
467
470
  fontFamily: {
package/themes/_fonts.css CHANGED
@@ -4,7 +4,7 @@
4
4
  * Regenerate: node tools/almadar-pattern-sync/dist/index.js themes (or `almadar-sync themes`)
5
5
  */
6
6
 
7
- @import url("https://fonts.googleapis.com/css2?family=Amiri:wght@400;700&family=Anton&family=Archivo:wght@400;500;700;800&family=Archivo+Black&family=Baloo+2:wght@500;600;700;800&family=Bangers&family=Bungee&family=Cairo:wght@300;400;500;600;700&family=Cinzel:wght@400;600;700;900&family=Cinzel+Decorative:wght@400;700&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,700;1,500;1,700&family=Crimson+Pro:wght@500;600;700&family=DM+Sans:wght@400;500;700&family=DM+Serif+Display&family=DotGothic16&family=EB+Garamond:wght@400;500;600;700&family=Exo+2:wght@300;400;500;600;700&family=Fraunces:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&family=Fredoka:wght@400;500;600;700&family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500;600&family=Hanken+Grotesk:wght@300;400;500;600&family=IBM+Plex+Mono:wght@400;500;600;700&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap");
7
+ @import url("https://fonts.googleapis.com/css2?family=Amiri:wght@400;700&family=Anton&family=Archivo:wght@400;500;700;800&family=Archivo+Black&family=Baloo+2:wght@500;600;700;800&family=Bangers&family=Bungee&family=Cairo:wght@300;400;500;600;700&family=Cinzel:wght@400;600;700;900&family=Cinzel+Decorative:wght@400;700&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,700;1,500;1,700&family=Crimson+Pro:wght@500;600;700&family=DM+Sans:wght@400;500;700&family=DM+Serif+Display&family=DotGothic16&family=EB+Garamond:wght@400;500;600;700&family=Exo+2:wght@300;400;500;600;700&family=Fraunces:ital,wght@0,400;0,500;0,600;0,700;1,400;1,600;1,700&family=Fredoka:wght@400;500;600;700&family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500;600&family=Hanken+Grotesk:wght@300;400;500;600&family=IBM+Plex+Mono:wght@400;500;600;700&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap");
8
8
  @import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+Arabic:wght@400;500;600;700&family=IBM+Plex+Sans+Condensed:wght@400;500;600;700&family=IM+Fell+English&family=Inter:wght@400;500;600;700;800&family=Inter+Tight:wght@400;500;700;800&family=JetBrains+Mono:wght@400;500;700&family=Josefin+Sans:wght@400;500;700&family=Jost:wght@300;400;500;700;800&family=Kalam:wght@300;400;700&family=Karla:wght@400;500;700&family=Libre+Baskerville:wght@400;700&family=Lilita+One&family=Limelight&family=Lora:wght@400;500;600;700&family=M+PLUS+Rounded+1c:wght@400;500;700;800&family=Ma+Shan+Zheng&family=Manrope:wght@400;500;600;700;800&family=MedievalSharp&family=Newsreader:wght@400;500;600&family=Noto+Naskh+Arabic:wght@400;500;700&family=Noto+Sans:wght@400;500;700;800&family=Noto+Sans+Arabic:wght@400;500;600;700&family=Noto+Sans+Mono:wght@400;500&family=Noto+Serif+JP:wght@400;500;700&display=swap");
9
9
  @import url("https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;700&family=Nunito:wght@400;500;600;700;800&family=Nunito+Sans:wght@400;600;700&family=Old+Standard+TT&family=Orbitron:wght@500;700;900&family=Oswald:wght@500;700&family=Outfit:wght@300;400;500;600&family=Patrick+Hand&family=Pixelify+Sans:wght@400;500;700&family=Playfair+Display:ital,wght@0,400;0,500;0,700;0,900;1,500;1,700&family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=Poiret+One&family=Poppins:wght@500;600;700&family=Press+Start+2P&family=Quicksand:wght@500;600;700&family=Rajdhani:wght@400;500;600;700&family=Reem+Kufi:wght@400;500;600;700&family=Roboto:wght@400;500;700&family=Roboto+Condensed:wght@400;500;700&family=Roboto+Flex:wght@400;500;600;700&family=Roboto+Mono:wght@400;500&family=Rubik:wght@400;500;700&family=Rubik+Mono+One&family=Russo+One&display=swap");
10
10
  @import url("https://fonts.googleapis.com/css2?family=Schibsted+Grotesk:wght@400;500;600;700&family=Share+Tech+Mono&family=Shippori+Mincho:wght@400;500&family=Shrikhand&family=Silkscreen:wght@400;700&family=Sora:wght@400;600;700&family=Space+Mono:wght@400;700&family=Special+Elite&family=Tilt+Neon&family=UnifrakturCook:wght@700&family=VT323&family=Work+Sans:wght@400;500;600;700&family=Zen+Antique&family=Zen+Kaku+Gothic+New:wght@300;400;500;700&display=swap");
@@ -30,6 +30,7 @@
30
30
  @import "./gothic.css";
31
31
  @import "./ink-wash.css";
32
32
  @import "./kawaii.css";
33
+ @import "./kflow.css";
33
34
  @import "./kiosk.css";
34
35
  @import "./linear-clean.css";
35
36
  @import "./luxury.css";