@orangecheck/app-design 1.6.1 → 1.7.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 (56) hide show
  1. package/README.md +3 -3
  2. package/dist/chrome.d.mts +11 -6
  3. package/dist/chrome.d.ts +11 -6
  4. package/dist/chrome.js +156 -130
  5. package/dist/chrome.js.map +1 -1
  6. package/dist/chrome.mjs +155 -131
  7. package/dist/chrome.mjs.map +1 -1
  8. package/dist/components.d.mts +40 -5
  9. package/dist/components.d.ts +40 -5
  10. package/dist/components.js +135 -13
  11. package/dist/components.js.map +1 -1
  12. package/dist/components.mjs +132 -14
  13. package/dist/components.mjs.map +1 -1
  14. package/dist/{docs-CFE5mU_6.d.mts → docs-B9G1BNXI.d.mts} +2 -2
  15. package/dist/{docs-ByUx4t-D.d.ts → docs-BWWnm5Jv.d.ts} +2 -2
  16. package/dist/family.d.mts +1 -1
  17. package/dist/family.d.ts +1 -1
  18. package/dist/family.js +7 -1
  19. package/dist/family.js.map +1 -1
  20. package/dist/family.mjs +5 -2
  21. package/dist/family.mjs.map +1 -1
  22. package/dist/{index-DmfyPYe5.d.mts → index-Bkl49Vgy.d.mts} +4 -1
  23. package/dist/{index-DmfyPYe5.d.ts → index-Bkl49Vgy.d.ts} +4 -1
  24. package/dist/index.d.mts +7 -7
  25. package/dist/index.d.ts +7 -7
  26. package/dist/index.js +197 -48
  27. package/dist/index.js.map +1 -1
  28. package/dist/index.mjs +189 -49
  29. package/dist/index.mjs.map +1 -1
  30. package/dist/mdx.d.mts +3 -3
  31. package/dist/mdx.d.ts +3 -3
  32. package/dist/mdx.js +5 -3
  33. package/dist/mdx.js.map +1 -1
  34. package/dist/mdx.mjs +5 -3
  35. package/dist/mdx.mjs.map +1 -1
  36. package/dist/primitives.d.mts +2 -2
  37. package/dist/primitives.d.ts +2 -2
  38. package/dist/primitives.js +2 -1
  39. package/dist/primitives.js.map +1 -1
  40. package/dist/primitives.mjs +2 -1
  41. package/dist/primitives.mjs.map +1 -1
  42. package/dist/session.d.mts +4 -4
  43. package/dist/session.d.ts +4 -4
  44. package/dist/session.js +122 -1
  45. package/dist/session.js.map +1 -1
  46. package/dist/session.mjs +122 -1
  47. package/dist/session.mjs.map +1 -1
  48. package/dist/{status-badge-BJ9Sdsx8.d.mts → status-badge-BBbCO6ZA.d.mts} +1 -1
  49. package/dist/{status-badge-Bt8x3RhO.d.ts → status-badge-CHHxtFkP.d.ts} +1 -1
  50. package/dist/styles/swagger.css +24 -1
  51. package/dist/styles/tokens.css +5 -0
  52. package/dist/{tool-shell-CQZNRUgH.d.mts → tool-shell-CnZ3NUSi.d.ts} +10 -4
  53. package/dist/{tool-shell-CRmceGrV.d.ts → tool-shell-DQFEMLLe.d.mts} +10 -4
  54. package/dist/{tools-Bg1gi2HO.d.mts → tools-CKO8IseL.d.mts} +2 -2
  55. package/dist/{tools-Bw7RhO92.d.ts → tools-CzjFPng4.d.ts} +2 -2
  56. package/package.json +5 -2
@@ -206,11 +206,34 @@
206
206
  }
207
207
 
208
208
  /* Swagger UI sets its fields to 12-14px at a specificity that beats the system's
209
- 16px phone floor, so iOS zoomed on every focus. One class more wins here. */
209
+ 16px phone floor, so iOS zoomed on every focus. One class more wins here.
210
+ Its collapse arrows, the operation lock and the models toggle are 20-30px
211
+ targets; on a phone each reaches 44px, the glyphs unchanged. */
210
212
  @media (width < 48rem) {
211
213
  [data-oc-app='ochk'] .swagger-ui :is(input:not([type='checkbox'], [type='radio'], [type='file'], [type='hidden']), select, textarea) {
212
214
  font-size: 16px;
213
215
  }
216
+ [data-oc-app='ochk'] .swagger-ui :is(.expand-operation, .expand-methods, .opblock-control-arrow, .authorization__btn, .models-control) {
217
+ min-width: 44px;
218
+ min-height: 44px;
219
+ }
220
+ }
221
+
222
+ /* The operation lock drew at 40% black when open: 2.8:1 on a tinted row in
223
+ light, 1.1:1 in dark. It takes the muted ink in both modes, open or shut;
224
+ the glyph says which. A parameter's place ("path") was grey at 3.5:1 and
225
+ "required" a 60% red; both take the system's inks. */
226
+ [data-oc-app='ochk'] .swagger-ui .authorization__btn svg {
227
+ fill: var(--muted-foreground);
228
+ opacity: 1;
229
+ }
230
+ [data-oc-app='ochk'] .swagger-ui .parameter__in,
231
+ [data-oc-app='ochk'] .swagger-ui .parameter__extension {
232
+ color: var(--muted-foreground);
233
+ }
234
+ [data-oc-app='ochk'] .swagger-ui .parameter__name.required span,
235
+ [data-oc-app='ochk'] .swagger-ui .parameter__name.required::after {
236
+ color: var(--destructive);
214
237
  }
215
238
 
216
239
  /* Swagger's method badges put white text on light fills (GET 2.3:1, POST 2.0:1,
@@ -138,6 +138,11 @@
138
138
  --oc-signin-strong: 500;
139
139
  /* Sentence-case labels carry no trailing arrow (auth-client ≥ 2.29). */
140
140
  --oc-signin-arrow: none;
141
+ /* Role sizes for the ceremony (auth-client ≥ 2.33.4): app-design's body, hint, label and button sizes. */
142
+ --oc-signin-text-size: 0.9375rem;
143
+ --oc-signin-hint-size: 0.8125rem;
144
+ --oc-signin-label-size: 0.875rem;
145
+ --oc-signin-button-size: 0.9375rem;
141
146
 
142
147
  /* The wallet picker and sign button (@orangecheck/wallet-adapter's
143
148
  OcWalletPicker and OcWalletButton) in this design, read the same way:
@@ -1,7 +1,7 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode } from 'react';
3
- import { i as ToolItem } from './tools-Bg1gi2HO.mjs';
4
- import { d as FamilySlug, j as ProtocolSlug } from './index-DmfyPYe5.mjs';
3
+ import { i as ToolItem } from './tools-CzjFPng4.js';
4
+ import { d as FamilySlug, k as ProtocolSlug } from './index-Bkl49Vgy.js';
5
5
 
6
6
  interface ShellNavItem {
7
7
  href: string;
@@ -71,6 +71,11 @@ declare function SessionAccountView({ state, name, detail, items, signInHref, si
71
71
  onSignOut?: () => void;
72
72
  nameFrom?: 'sm' | 'lg';
73
73
  }): react.JSX.Element;
74
+ declare function ToolColumn({ measure, className, children, }: {
75
+ measure?: 'wide' | 'narrow';
76
+ className?: string;
77
+ children: ReactNode;
78
+ }): react.JSX.Element;
74
79
  interface ToolShellProps {
75
80
  protocol: ProtocolSlug;
76
81
  tools: readonly ToolItem[];
@@ -79,10 +84,11 @@ interface ToolShellProps {
79
84
  rail?: boolean;
80
85
  railFooter?: ReactNode;
81
86
  variant?: 'tool' | 'app';
87
+ measure?: 'wide' | 'narrow';
82
88
  banner?: ReactNode;
83
89
  footer?: ReactNode | false;
84
90
  children: ReactNode;
85
91
  }
86
- declare function ToolShell({ protocol, tools, home, account, rail, railFooter, variant, banner, footer, children, }: ToolShellProps): react.JSX.Element;
92
+ declare function ToolShell({ protocol, tools, home, account, rail, railFooter, variant, measure, banner, footer, children, }: ToolShellProps): react.JSX.Element;
87
93
 
88
- export { AccountMenu as A, OCHK_APP_ACCOUNT as O, SessionAccountView as S, ThemeToggle as T, type AccountMenuItem as a, AppShell as b, type AppShellProps as c, type SessionState as d, type ShellNavGroup as e, type ShellNavItem as f, type ShellSection as g, ToolShell as h, type ToolShellProps as i, useSignInHref as u };
94
+ export { AccountMenu as A, OCHK_APP_ACCOUNT as O, SessionAccountView as S, ThemeToggle as T, type AccountMenuItem as a, AppShell as b, type AppShellProps as c, type SessionState as d, type ShellNavGroup as e, type ShellNavItem as f, type ShellSection as g, ToolColumn as h, ToolShell as i, type ToolShellProps as j, useSignInHref as u };
@@ -1,7 +1,7 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode } from 'react';
3
- import { i as ToolItem } from './tools-Bw7RhO92.js';
4
- import { d as FamilySlug, j as ProtocolSlug } from './index-DmfyPYe5.js';
3
+ import { i as ToolItem } from './tools-CKO8IseL.mjs';
4
+ import { d as FamilySlug, k as ProtocolSlug } from './index-Bkl49Vgy.mjs';
5
5
 
6
6
  interface ShellNavItem {
7
7
  href: string;
@@ -71,6 +71,11 @@ declare function SessionAccountView({ state, name, detail, items, signInHref, si
71
71
  onSignOut?: () => void;
72
72
  nameFrom?: 'sm' | 'lg';
73
73
  }): react.JSX.Element;
74
+ declare function ToolColumn({ measure, className, children, }: {
75
+ measure?: 'wide' | 'narrow';
76
+ className?: string;
77
+ children: ReactNode;
78
+ }): react.JSX.Element;
74
79
  interface ToolShellProps {
75
80
  protocol: ProtocolSlug;
76
81
  tools: readonly ToolItem[];
@@ -79,10 +84,11 @@ interface ToolShellProps {
79
84
  rail?: boolean;
80
85
  railFooter?: ReactNode;
81
86
  variant?: 'tool' | 'app';
87
+ measure?: 'wide' | 'narrow';
82
88
  banner?: ReactNode;
83
89
  footer?: ReactNode | false;
84
90
  children: ReactNode;
85
91
  }
86
- declare function ToolShell({ protocol, tools, home, account, rail, railFooter, variant, banner, footer, children, }: ToolShellProps): react.JSX.Element;
92
+ declare function ToolShell({ protocol, tools, home, account, rail, railFooter, variant, measure, banner, footer, children, }: ToolShellProps): react.JSX.Element;
87
93
 
88
- export { AccountMenu as A, OCHK_APP_ACCOUNT as O, SessionAccountView as S, ThemeToggle as T, type AccountMenuItem as a, AppShell as b, type AppShellProps as c, type SessionState as d, type ShellNavGroup as e, type ShellNavItem as f, type ShellSection as g, ToolShell as h, type ToolShellProps as i, useSignInHref as u };
94
+ export { AccountMenu as A, OCHK_APP_ACCOUNT as O, SessionAccountView as S, ThemeToggle as T, type AccountMenuItem as a, AppShell as b, type AppShellProps as c, type SessionState as d, type ShellNavGroup as e, type ShellNavItem as f, type ShellSection as g, ToolColumn as h, ToolShell as i, type ToolShellProps as j, useSignInHref as u };
@@ -97,12 +97,12 @@ declare function Meter({ value, max, ghost, label, figure, tone, size, className
97
97
  size?: 'md' | 'sm';
98
98
  className?: string;
99
99
  }): react.JSX.Element;
100
- interface FilterOption<T extends string> {
100
+ interface FilterOption<T extends string | number> {
101
101
  value: T;
102
102
  label: ReactNode;
103
103
  count?: number;
104
104
  }
105
- declare function FilterChips<T extends string>({ options, value, onChange, label, className, }: {
105
+ declare function FilterChips<T extends string | number>({ options, value, onChange, label, className, }: {
106
106
  options: FilterOption<T>[];
107
107
  label: string;
108
108
  className?: string;
@@ -97,12 +97,12 @@ declare function Meter({ value, max, ghost, label, figure, tone, size, className
97
97
  size?: 'md' | 'sm';
98
98
  className?: string;
99
99
  }): react.JSX.Element;
100
- interface FilterOption<T extends string> {
100
+ interface FilterOption<T extends string | number> {
101
101
  value: T;
102
102
  label: ReactNode;
103
103
  count?: number;
104
104
  }
105
- declare function FilterChips<T extends string>({ options, value, onChange, label, className, }: {
105
+ declare function FilterChips<T extends string | number>({ options, value, onChange, label, className, }: {
106
106
  options: FilterOption<T>[];
107
107
  label: string;
108
108
  className?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orangecheck/app-design",
3
- "version": "1.6.1",
3
+ "version": "1.7.0",
4
4
  "description": "The ochk.app design system: tokens, type, the isometric check, halftone photography, primitives and app chrome. Its own system, scoped under data-oc-app=\"ochk\" so it never reaches the .ochk.io family sites.",
5
5
  "keywords": [
6
6
  "orangecheck",
@@ -91,7 +91,7 @@
91
91
  "scripts": {
92
92
  "build": "node scripts/gen-palette.mjs && tsup && yarn copy:css",
93
93
  "copy:css": "rm -rf dist/styles && mkdir -p dist/styles && cp src/styles.css dist/styles.css && cp -R src/styles/. dist/styles/",
94
- "test": "node scripts/check-contrast.mjs && node scripts/check-isolation.mjs && node scripts/check-shell.mjs && node scripts/check-mirror.mjs && node scripts/check-code.mjs && node scripts/check-entries.mjs && node scripts/check-render.mjs && node scripts/check-dom.mjs && node scripts/check-next.mjs",
94
+ "test": "node scripts/check-contrast.mjs && node scripts/check-swagger.mjs && node scripts/check-isolation.mjs && node scripts/check-shell.mjs && node scripts/check-mirror.mjs && node scripts/check-code.mjs && node scripts/check-entries.mjs && node scripts/check-render.mjs && node scripts/check-dom.mjs && node scripts/check-layout.mjs && node scripts/check-next.mjs",
95
95
  "dev": "tsup --watch",
96
96
  "type-check": "tsc --noEmit",
97
97
  "clean": "rm -rf dist"
@@ -135,6 +135,7 @@
135
135
  "@orangecheck/auth-client": "^2.32.3",
136
136
  "@orangecheck/auth-core": "^2.5.0",
137
137
  "@orangecheck/wallet-adapter": "^0.6.4",
138
+ "@tailwindcss/cli": "^4.3.0",
138
139
  "@types/qrcode": "^1.5.5",
139
140
  "@types/react": "^19.0.0",
140
141
  "@types/react-dom": "^19.0.0",
@@ -143,8 +144,10 @@
143
144
  "mermaid": "^11.14.0",
144
145
  "next": "^16.3.8",
145
146
  "next-themes": "^0.4.6",
147
+ "playwright-core": "~1.60.0",
146
148
  "react": "19.1.0",
147
149
  "react-dom": "19.1.0",
150
+ "tailwindcss": "^4.3.0",
148
151
  "tsup": "^8.3.5",
149
152
  "typescript": "^5.6.3"
150
153
  },