@setsquare/ui 0.1.0 → 0.2.1

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 (125) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +36 -1
  3. package/dist/index.d.ts +20 -13
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +2 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/lib/labels.d.ts +11 -0
  8. package/dist/lib/labels.d.ts.map +1 -0
  9. package/dist/lib/labels.js +15 -0
  10. package/dist/lib/labels.js.map +1 -0
  11. package/dist/shell/app-header.d.ts +4 -1
  12. package/dist/shell/app-header.d.ts.map +1 -1
  13. package/dist/shell/app-header.js +2 -2
  14. package/dist/shell/app-header.js.map +1 -1
  15. package/dist/shell/dashboard-shell.d.ts +1 -1
  16. package/dist/shell/dashboard-shell.d.ts.map +1 -1
  17. package/dist/shell/dashboard-shell.js +10 -14
  18. package/dist/shell/dashboard-shell.js.map +1 -1
  19. package/dist/shell/right-panel.d.ts +7 -1
  20. package/dist/shell/right-panel.d.ts.map +1 -1
  21. package/dist/shell/right-panel.js +6 -3
  22. package/dist/shell/right-panel.js.map +1 -1
  23. package/dist/shell/sidebar.d.ts +16 -2
  24. package/dist/shell/sidebar.d.ts.map +1 -1
  25. package/dist/shell/sidebar.js +17 -8
  26. package/dist/shell/sidebar.js.map +1 -1
  27. package/dist/styles/theme.css +2 -1
  28. package/dist/ui/alert.d.ts +16 -2
  29. package/dist/ui/alert.d.ts.map +1 -1
  30. package/dist/ui/alert.js +11 -4
  31. package/dist/ui/alert.js.map +1 -1
  32. package/dist/ui/calendar.d.ts +9 -2
  33. package/dist/ui/calendar.d.ts.map +1 -1
  34. package/dist/ui/calendar.js +6 -6
  35. package/dist/ui/calendar.js.map +1 -1
  36. package/dist/ui/checkbox.d.ts +5 -2
  37. package/dist/ui/checkbox.d.ts.map +1 -1
  38. package/dist/ui/checkbox.js +4 -4
  39. package/dist/ui/checkbox.js.map +1 -1
  40. package/dist/ui/code-block.d.ts +10 -1
  41. package/dist/ui/code-block.d.ts.map +1 -1
  42. package/dist/ui/code-block.js +6 -3
  43. package/dist/ui/code-block.js.map +1 -1
  44. package/dist/ui/combo-box.d.ts +3 -2
  45. package/dist/ui/combo-box.d.ts.map +1 -1
  46. package/dist/ui/combo-box.js +2 -2
  47. package/dist/ui/combo-box.js.map +1 -1
  48. package/dist/ui/copy-button.d.ts +12 -1
  49. package/dist/ui/copy-button.d.ts.map +1 -1
  50. package/dist/ui/copy-button.js +18 -5
  51. package/dist/ui/copy-button.js.map +1 -1
  52. package/dist/ui/date-field.d.ts +22 -5
  53. package/dist/ui/date-field.d.ts.map +1 -1
  54. package/dist/ui/date-field.js +23 -17
  55. package/dist/ui/date-field.js.map +1 -1
  56. package/dist/ui/dialog.d.ts +19 -2
  57. package/dist/ui/dialog.d.ts.map +1 -1
  58. package/dist/ui/dialog.js +14 -8
  59. package/dist/ui/dialog.js.map +1 -1
  60. package/dist/ui/error-state.d.ts +17 -1
  61. package/dist/ui/error-state.d.ts.map +1 -1
  62. package/dist/ui/error-state.js +15 -5
  63. package/dist/ui/error-state.js.map +1 -1
  64. package/dist/ui/field.d.ts +8 -1
  65. package/dist/ui/field.d.ts.map +1 -1
  66. package/dist/ui/field.js +2 -2
  67. package/dist/ui/field.js.map +1 -1
  68. package/dist/ui/file-upload.d.ts +33 -1
  69. package/dist/ui/file-upload.d.ts.map +1 -1
  70. package/dist/ui/file-upload.js +43 -15
  71. package/dist/ui/file-upload.js.map +1 -1
  72. package/dist/ui/form.d.ts +3 -2
  73. package/dist/ui/form.d.ts.map +1 -1
  74. package/dist/ui/form.js +17 -9
  75. package/dist/ui/form.js.map +1 -1
  76. package/dist/ui/link-card.d.ts +6 -4
  77. package/dist/ui/link-card.d.ts.map +1 -1
  78. package/dist/ui/link-card.js +4 -5
  79. package/dist/ui/link-card.js.map +1 -1
  80. package/dist/ui/number-field.d.ts +3 -2
  81. package/dist/ui/number-field.d.ts.map +1 -1
  82. package/dist/ui/number-field.js +2 -2
  83. package/dist/ui/number-field.js.map +1 -1
  84. package/dist/ui/pagination.d.ts +30 -0
  85. package/dist/ui/pagination.d.ts.map +1 -0
  86. package/dist/ui/pagination.js +48 -0
  87. package/dist/ui/pagination.js.map +1 -0
  88. package/dist/ui/radio-group.d.ts +3 -1
  89. package/dist/ui/radio-group.d.ts.map +1 -1
  90. package/dist/ui/radio-group.js +2 -2
  91. package/dist/ui/radio-group.js.map +1 -1
  92. package/dist/ui/search.d.ts +23 -5
  93. package/dist/ui/search.d.ts.map +1 -1
  94. package/dist/ui/search.js +24 -10
  95. package/dist/ui/search.js.map +1 -1
  96. package/dist/ui/select.d.ts +3 -2
  97. package/dist/ui/select.d.ts.map +1 -1
  98. package/dist/ui/select.js +2 -2
  99. package/dist/ui/select.js.map +1 -1
  100. package/dist/ui/selection-bar.d.ts +14 -1
  101. package/dist/ui/selection-bar.d.ts.map +1 -1
  102. package/dist/ui/selection-bar.js +15 -6
  103. package/dist/ui/selection-bar.js.map +1 -1
  104. package/dist/ui/sheet.d.ts +6 -1
  105. package/dist/ui/sheet.d.ts.map +1 -1
  106. package/dist/ui/sheet.js +2 -2
  107. package/dist/ui/sheet.js.map +1 -1
  108. package/dist/ui/tabs.d.ts +43 -0
  109. package/dist/ui/tabs.d.ts.map +1 -0
  110. package/dist/ui/tabs.js +37 -0
  111. package/dist/ui/tabs.js.map +1 -0
  112. package/dist/ui/text-field.d.ts +4 -3
  113. package/dist/ui/text-field.d.ts.map +1 -1
  114. package/dist/ui/text-field.js +4 -4
  115. package/dist/ui/text-field.js.map +1 -1
  116. package/dist/ui/theme-switcher.d.ts +14 -1
  117. package/dist/ui/theme-switcher.d.ts.map +1 -1
  118. package/dist/ui/theme-switcher.js +15 -4
  119. package/dist/ui/theme-switcher.js.map +1 -1
  120. package/dist/ui/toast.d.ts +7 -1
  121. package/dist/ui/toast.d.ts.map +1 -1
  122. package/dist/ui/toast.js +2 -11
  123. package/dist/ui/toast.js.map +1 -1
  124. package/package.json +21 -20
  125. package/templates/next/prefetch-on-intent.ts +10 -3
@@ -1 +1 @@
1
- {"version":3,"file":"text-field.js","sourceRoot":"","sources":["../../src/ui/text-field.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EACL,KAAK,EACL,QAAQ,IAAI,WAAW,EACvB,SAAS,IAAI,YAAY,GAE1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,WAAW,EACX,OAAO,EACP,cAAc,EACd,YAAY,GAEb,MAAM,YAAY,CAAC;AAmBpB;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,EACxB,KAAK,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,WAAW,EACX,KAAK,GAAG,MAAM,EACd,SAAS,EACT,GAAG,KAAK,EACO;IACf,OAAO,CACL,MAAC,YAAY,OACP,KAAK,EACT,QAAQ,EAAE,YAAY,CACpB,KAAK,CAAC,UAAU,EAChB,eAAe,IAAI,SAAS,OAAO,CAAC,KAAK,CAAC,EAAE,EAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EACjB,QAAQ,CACT,EACD,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,aAExD,KAAC,UAAU,IAAC,UAAU,EAAE,KAAK,CAAC,UAAU,YAAG,KAAK,GAAc,EAC7D,WAAW,IAAI,KAAC,gBAAgB,cAAE,WAAW,GAAoB,EAClE,KAAC,UAAU,IAAC,eAAe,EAAE,eAAe,IAAI,SAAS,OAAO,CAAC,KAAK,CAAC,EAAE,YACtE,YAAY,GACF,EACb,cAAK,SAAS,EAAE,QAAQ,YACtB,KAAC,KAAK,IAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,GAAI,GACtD,IACO,CAChB,CAAC;AACJ,CAAC;AAMD,mFAAmF;AACnF,MAAM,UAAU,QAAQ,CAAC,EACvB,KAAK,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,WAAW,EACX,KAAK,GAAG,IAAI,EACZ,IAAI,GAAG,CAAC,EACR,SAAS,EACT,GAAG,KAAK,EACM;IACd,OAAO,CACL,MAAC,YAAY,OACP,KAAK,EACT,QAAQ,EAAE,YAAY,CACpB,KAAK,CAAC,UAAU,EAChB,eAAe,IAAI,SAAS,OAAO,CAAC,KAAK,CAAC,EAAE,EAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EACjB,QAAQ,CACT,EACD,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,aAExD,KAAC,UAAU,IAAC,UAAU,EAAE,KAAK,CAAC,UAAU,YAAG,KAAK,GAAc,EAC7D,WAAW,IAAI,KAAC,gBAAgB,cAAE,WAAW,GAAoB,EAClE,KAAC,UAAU,IAAC,eAAe,EAAE,eAAe,IAAI,SAAS,OAAO,CAAC,KAAK,CAAC,EAAE,YACtE,YAAY,GACF,EACb,KAAC,WAAW,IAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,GAAI,IACnE,CAChB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"text-field.js","sourceRoot":"","sources":["../../src/ui/text-field.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EACL,KAAK,EACL,QAAQ,IAAI,WAAW,EACvB,SAAS,IAAI,YAAY,GAE1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,UAAU,EACV,QAAQ,EACR,UAAU,EACV,WAAW,EACX,OAAO,EACP,cAAc,EACd,YAAY,GAGb,MAAM,YAAY,CAAC;AAoBpB;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,EACxB,KAAK,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,WAAW,EACX,KAAK,GAAG,MAAM,EACd,MAAM,EACN,SAAS,EACT,GAAG,KAAK,EACO;IACf,OAAO,CACL,MAAC,YAAY,OACP,KAAK,EACT,QAAQ,EAAE,YAAY,CACpB,KAAK,CAAC,UAAU,EAChB,eAAe,IAAI,SAAS,OAAO,CAAC,KAAK,CAAC,EAAE,EAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EACjB,QAAQ,CACT,EACD,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,aAExD,KAAC,UAAU,IAAC,UAAU,EAAE,KAAK,CAAC,UAAU,YAAG,KAAK,GAAc,EAC7D,WAAW,IAAI,KAAC,gBAAgB,cAAE,WAAW,GAAoB,EAClE,KAAC,UAAU,IACT,WAAW,EAAE,MAAM,EAAE,WAAW,EAChC,eAAe,EAAE,eAAe,IAAI,SAAS,OAAO,CAAC,KAAK,CAAC,EAAE,YAE5D,YAAY,GACF,EACb,cAAK,SAAS,EAAE,QAAQ,YACtB,KAAC,KAAK,IAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,GAAI,GACtD,IACO,CAChB,CAAC;AACJ,CAAC;AAMD,mFAAmF;AACnF,MAAM,UAAU,QAAQ,CAAC,EACvB,KAAK,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,QAAQ,EACR,WAAW,EACX,KAAK,GAAG,IAAI,EACZ,IAAI,GAAG,CAAC,EACR,MAAM,EACN,SAAS,EACT,GAAG,KAAK,EACM;IACd,OAAO,CACL,MAAC,YAAY,OACP,KAAK,EACT,QAAQ,EAAE,YAAY,CACpB,KAAK,CAAC,UAAU,EAChB,eAAe,IAAI,SAAS,OAAO,CAAC,KAAK,CAAC,EAAE,EAC5C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EACjB,QAAQ,CACT,EACD,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,aAExD,KAAC,UAAU,IAAC,UAAU,EAAE,KAAK,CAAC,UAAU,YAAG,KAAK,GAAc,EAC7D,WAAW,IAAI,KAAC,gBAAgB,cAAE,WAAW,GAAoB,EAClE,KAAC,UAAU,IACT,WAAW,EAAE,MAAM,EAAE,WAAW,EAChC,eAAe,EAAE,eAAe,IAAI,SAAS,OAAO,CAAC,KAAK,CAAC,EAAE,YAE5D,YAAY,GACF,EACb,KAAC,WAAW,IAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,GAAI,IACnE,CAChB,CAAC;AACJ,CAAC"}
@@ -1,4 +1,16 @@
1
1
  import { type ConformanceLevel, type ThemeOptions, type ThemePreference } from './theme.js';
2
+ /** The switcher's words, for the `labels` prop. */
3
+ export interface ThemeSwitcherLabels {
4
+ /** Names the theme control. */
5
+ theme: string;
6
+ light: string;
7
+ dark: string;
8
+ system: string;
9
+ /** Names the level control, when `level` is on. */
10
+ level: string;
11
+ aa: string;
12
+ aaa: string;
13
+ }
2
14
  export interface ThemeSwitcherProps extends ThemeOptions {
3
15
  /** Also offer AA and AAA, as the docs site does. */
4
16
  level?: boolean;
@@ -15,6 +27,7 @@ export interface ThemeSwitcherProps extends ThemeOptions {
15
27
  resolved: 'light' | 'dark';
16
28
  level: ConformanceLevel;
17
29
  }) => void;
30
+ labels?: Partial<ThemeSwitcherLabels>;
18
31
  className?: string;
19
32
  }
20
33
  /**
@@ -22,5 +35,5 @@ export interface ThemeSwitcherProps extends ThemeOptions {
22
35
  * where ThemeScript reads it before the next page paints. System follows the operating system as it changes.
23
36
  * Use the same options as the page's ThemeScript.
24
37
  */
25
- export declare function ThemeSwitcher({ level: offerLevel, initialTheme, initialLevel, onChange, className, ...options }: ThemeSwitcherProps): import("react").JSX.Element;
38
+ export declare function ThemeSwitcher({ level: offerLevel, initialTheme, initialLevel, onChange, labels: given, className, ...options }: ThemeSwitcherProps): import("react").JSX.Element;
26
39
  //# sourceMappingURL=theme-switcher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme-switcher.d.ts","sourceRoot":"","sources":["../../src/ui/theme-switcher.tsx"],"names":[],"mappings":"AAKA,OAAO,EAOL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,oDAAoD;IACpD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,mEAAmE;IACnE,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,oFAAoF;IACpF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE;QACjB,KAAK,EAAE,eAAe,CAAC;QACvB,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;QAC3B,KAAK,EAAE,gBAAgB,CAAC;KACzB,KAAK,IAAI,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EAAE,UAAkB,EACzB,YAAY,EACZ,YAAmB,EACnB,QAAQ,EACR,SAAS,EACT,GAAG,OAAO,EACX,EAAE,kBAAkB,+BA+CpB"}
1
+ {"version":3,"file":"theme-switcher.d.ts","sourceRoot":"","sources":["../../src/ui/theme-switcher.tsx"],"names":[],"mappings":"AAMA,OAAO,EAOL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAEpB,mDAAmD;AACnD,MAAM,WAAW,mBAAmB;IAClC,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;CACb;AAYD,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,oDAAoD;IACpD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,mEAAmE;IACnE,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,oFAAoF;IACpF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE;QACjB,KAAK,EAAE,eAAe,CAAC;QACvB,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;QAC3B,KAAK,EAAE,gBAAgB,CAAC;KACzB,KAAK,IAAI,CAAC;IACX,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EAAE,UAAkB,EACzB,YAAY,EACZ,YAAmB,EACnB,QAAQ,EACR,MAAM,EAAE,KAAK,EACb,SAAS,EACT,GAAG,OAAO,EACX,EAAE,kBAAkB,+BAgDpB"}
@@ -2,31 +2,42 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useCallback, useSyncExternalStore } from 'react';
4
4
  import { cn } from '../lib/cn.js';
5
+ import { withLabels } from '../lib/labels.js';
5
6
  import { Segment, SegmentedControl } from './segmented-control.js';
6
7
  import { applyLevel, applyTheme, readLevel, readTheme, resolveTheme, subscribeTheme, } from './theme.js';
8
+ const themeSwitcherLabels = {
9
+ theme: 'Theme',
10
+ light: 'Light',
11
+ dark: 'Dark',
12
+ system: 'System',
13
+ level: 'Conformance level',
14
+ aa: 'AA',
15
+ aaa: 'AAA',
16
+ };
7
17
  /**
8
18
  * Light, Dark and System, and optionally AA and AAA: segmented controls that set `<html>` and keep the choice
9
19
  * where ThemeScript reads it before the next page paints. System follows the operating system as it changes.
10
20
  * Use the same options as the page's ThemeScript.
11
21
  */
12
- export function ThemeSwitcher({ level: offerLevel = false, initialTheme, initialLevel = 'aa', onChange, className, ...options }) {
22
+ export function ThemeSwitcher({ level: offerLevel = false, initialTheme, initialLevel = 'aa', onChange, labels: given, className, ...options }) {
23
+ const labels = withLabels(themeSwitcherLabels, given);
13
24
  const { storage, key, levelKey, defaultTheme } = options;
14
25
  const subscribe = useCallback((cb) => subscribeTheme(cb, { storage, key, levelKey, defaultTheme }), [storage, key, levelKey, defaultTheme]);
15
26
  const theme = useSyncExternalStore(subscribe, () => readTheme(options), () => initialTheme ?? defaultTheme ?? 'system');
16
27
  const level = useSyncExternalStore(subscribe, readLevel, () => initialLevel);
17
28
  const report = (t, l) => onChange?.({ theme: t, resolved: resolveTheme(t), level: l });
18
- return (_jsxs("div", { className: cn('flex flex-wrap items-center gap-2', className), children: [_jsxs(SegmentedControl, { "aria-label": "Theme", selectedKeys: [theme], onSelectionChange: (keys) => {
29
+ return (_jsxs("div", { className: cn('flex flex-wrap items-center gap-2', className), children: [_jsxs(SegmentedControl, { "aria-label": labels.theme, selectedKeys: [theme], onSelectionChange: (keys) => {
19
30
  const next = [...keys][0];
20
31
  if (next !== 'light' && next !== 'dark' && next !== 'system')
21
32
  return;
22
33
  applyTheme(next, options);
23
34
  report(next, level);
24
- }, children: [_jsx(Segment, { id: "light", children: "Light" }), _jsx(Segment, { id: "dark", children: "Dark" }), _jsx(Segment, { id: "system", children: "System" })] }), offerLevel && (_jsxs(SegmentedControl, { "aria-label": "Conformance level", selectedKeys: [level], onSelectionChange: (keys) => {
35
+ }, children: [_jsx(Segment, { id: "light", children: labels.light }), _jsx(Segment, { id: "dark", children: labels.dark }), _jsx(Segment, { id: "system", children: labels.system })] }), offerLevel && (_jsxs(SegmentedControl, { "aria-label": labels.level, selectedKeys: [level], onSelectionChange: (keys) => {
25
36
  const next = [...keys][0];
26
37
  if (next !== 'aa' && next !== 'aaa')
27
38
  return;
28
39
  applyLevel(next, options);
29
40
  report(theme, next);
30
- }, children: [_jsx(Segment, { id: "aa", children: "AA" }), _jsx(Segment, { id: "aaa", children: "AAA" })] }))] }));
41
+ }, children: [_jsx(Segment, { id: "aa", children: labels.aa }), _jsx(Segment, { id: "aaa", children: labels.aaa })] }))] }));
31
42
  }
32
43
  //# sourceMappingURL=theme-switcher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme-switcher.js","sourceRoot":"","sources":["../../src/ui/theme-switcher.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EACL,UAAU,EACV,UAAU,EACV,SAAS,EACT,SAAS,EACT,YAAY,EACZ,cAAc,GAIf,MAAM,YAAY,CAAC;AAqBpB;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,KAAK,EAAE,UAAU,GAAG,KAAK,EACzB,YAAY,EACZ,YAAY,GAAG,IAAI,EACnB,QAAQ,EACR,SAAS,EACT,GAAG,OAAO,EACS;IACnB,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACzD,MAAM,SAAS,GAAG,WAAW,CAC3B,CAAC,EAAc,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,EAChF,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,CAAC,CACvC,CAAC;IACF,MAAM,KAAK,GAAG,oBAAoB,CAChC,SAAS,EACT,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EACxB,GAAG,EAAE,CAAC,YAAY,IAAI,YAAY,IAAI,QAAQ,CAC/C,CAAC;IACF,MAAM,KAAK,GAAG,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,CAAC,CAAkB,EAAE,CAAmB,EAAE,EAAE,CACzD,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAChE,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,mCAAmC,EAAE,SAAS,CAAC,aAChE,MAAC,gBAAgB,kBACJ,OAAO,EAClB,YAAY,EAAE,CAAC,KAAK,CAAC,EACrB,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE;oBAC1B,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1B,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,QAAQ;wBAAE,OAAO;oBACrE,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAC1B,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACtB,CAAC,aAED,KAAC,OAAO,IAAC,EAAE,EAAC,OAAO,sBAAgB,EACnC,KAAC,OAAO,IAAC,EAAE,EAAC,MAAM,qBAAe,EACjC,KAAC,OAAO,IAAC,EAAE,EAAC,QAAQ,uBAAiB,IACpB,EAClB,UAAU,IAAI,CACb,MAAC,gBAAgB,kBACJ,mBAAmB,EAC9B,YAAY,EAAE,CAAC,KAAK,CAAC,EACrB,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE;oBAC1B,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1B,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK;wBAAE,OAAO;oBAC5C,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAC1B,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBACtB,CAAC,aAED,KAAC,OAAO,IAAC,EAAE,EAAC,IAAI,mBAAa,EAC7B,KAAC,OAAO,IAAC,EAAE,EAAC,KAAK,oBAAc,IACd,CACpB,IACG,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"theme-switcher.js","sourceRoot":"","sources":["../../src/ui/theme-switcher.tsx"],"names":[],"mappings":"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"}
@@ -28,7 +28,13 @@ export declare function toast(content: ToastContent, options?: {
28
28
  * room to scroll into), so a focused control is scrolled clear of the stack rather than hidden behind it. With
29
29
  * the right panel open beside the page, the stack moves left of the panel, whose footer can't scroll.
30
30
  */
31
- export declare function Toaster({ className }: {
31
+ /** The toasts' words, for the `labels` prop on `Toaster`. */
32
+ export interface ToasterLabels {
33
+ /** Each toast's close button. */
34
+ dismiss: string;
35
+ }
36
+ export declare function Toaster({ labels, className, }: {
37
+ labels?: Partial<ToasterLabels>;
32
38
  className?: string;
33
39
  }): import("react").JSX.Element;
34
40
  //# sourceMappingURL=toast.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../src/ui/toast.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIL,mBAAmB,IAAI,UAAU,EAElC,MAAM,uBAAuB,CAAC;AAS/B,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAElE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,gFAAgF;IAChF,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;CAClD;AAED,eAAO,MAAM,UAAU,0BAAwD,CAAC;AAEhF;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,CAAA;CAAO,UAQ7F;AA8BD;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BA8D5D"}
1
+ {"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../src/ui/toast.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIL,mBAAmB,IAAI,UAAU,EAElC,MAAM,uBAAuB,CAAC;AAS/B,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAElE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,gFAAgF;IAChF,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;CAClD;AAED,eAAO,MAAM,UAAU,0BAAwD,CAAC;AAEhF;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,CAAA;CAAO,UAQ7F;AA8BD;;;;;;;;GAQG;AACH,6DAA6D;AAC7D,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,OAAO,CAAC,EACtB,MAAM,EACN,SAAS,GACV,EAAE;IACD,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BA8DA"}
package/dist/ui/toast.js CHANGED
@@ -43,16 +43,7 @@ function useRegionHeight() {
43
43
  observer.current.observe(el);
44
44
  }, []);
45
45
  }
46
- /**
47
- * Render once, near the root. A labelled landmark ("Notifications") at the bottom right — bottom centre
48
- * on phones; F6 moves focus into it, and each toast is announced when it arrives.
49
- *
50
- * Toasts that stay (errors, anything with an action) must not cover the control that has focus. The stack's
51
- * height is published as --toast-region-height; ShellMain and the page use it as bottom scroll padding (and
52
- * room to scroll into), so a focused control is scrolled clear of the stack rather than hidden behind it. With
53
- * the right panel open beside the page, the stack moves left of the panel, whose footer can't scroll.
54
- */
55
- export function Toaster({ className }) {
46
+ export function Toaster({ labels, className, }) {
56
47
  const regionRef = useRegionHeight();
57
48
  // With the right panel open beside the page, the stack sits left of it: the panel's footer doesn't scroll,
58
49
  // so nothing could move its buttons clear of a toast.
@@ -63,7 +54,7 @@ export function Toaster({ className }) {
63
54
  return (_jsxs(RACToast, { toast: t, className: "flex items-start gap-3 rounded-lg border border-border bg-popover py-3 pr-2 pl-3 text-sm text-popover-foreground shadow-(--shadow-lg) outline-none data-focus-visible:focus-ring motion-safe:animate-[setsquare-toast_var(--duration-enter)_var(--ease-standard)]", children: [_jsx(tone.Icon, { "aria-hidden": "true", className: cn('mt-px size-5 shrink-0', tone.icon) }), _jsxs(RACToastContent, { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [_jsx(Text, { slot: "title", className: "font-semibold", children: t.content.title }), t.content.description && (_jsx(Text, { slot: "description", className: "text-[13px] leading-5 text-muted-foreground", children: t.content.description })), t.content.action && (_jsx("div", { className: "mt-2", children: _jsx(Button, { variant: "outline", visualSize: "sm", onPress: () => {
64
55
  t.content.action.onAction();
65
56
  toastQueue.close(t.key);
66
- }, children: t.content.action.label }) }))] }), _jsx(Button, { slot: "close", "aria-label": "Dismiss", variant: "ghost", visualSize: "icon-sm", className: "-my-0.5 shrink-0", children: _jsx(X, { "aria-hidden": "true" }) })] }));
57
+ }, children: t.content.action.label }) }))] }), _jsx(Button, { slot: "close", "aria-label": labels?.dismiss ?? 'Dismiss', variant: "ghost", visualSize: "icon-sm", className: "-my-0.5 shrink-0", children: _jsx(X, { "aria-hidden": "true" }) })] }));
67
58
  } }));
68
59
  }
69
60
  //# sourceMappingURL=toast.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toast.js","sourceRoot":"","sources":["../../src/ui/toast.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toast.js","sourceRoot":"","sources":["../../src/ui/toast.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@setsquare/ui",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
4
  "description": "React Aria components, design tokens, a dashboard shell and a site shell, with a switch between WCAG 2.2 AA and AAA sizing, spacing and contrast.",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/Worktree-Amigos/setsquare-ui#readme",
@@ -11,6 +11,7 @@
11
11
  "type": "git",
12
12
  "url": "git+https://github.com/Worktree-Amigos/setsquare-ui.git"
13
13
  },
14
+ "packageManager": "pnpm@11.21.0",
14
15
  "type": "module",
15
16
  "main": "./dist/index.js",
16
17
  "types": "./dist/index.d.ts",
@@ -58,6 +59,24 @@
58
59
  "wcag",
59
60
  "nextjs"
60
61
  ],
62
+ "scripts": {
63
+ "build": "node scripts/build-css.mjs && tsc -p tsconfig.json",
64
+ "typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json",
65
+ "typecheck:react18": "node scripts/typecheck-react18.mjs",
66
+ "lint": "oxlint && node scripts/check-contrast.mjs",
67
+ "format": "oxfmt",
68
+ "format:check": "oxfmt --check",
69
+ "test": "vitest run",
70
+ "test:browser": "node test/browser/run.mjs",
71
+ "docs:build": "node scripts/build-docs.mjs",
72
+ "package:verify": "node scripts/verify-package.mjs",
73
+ "ci:local": "node scripts/ci-local.mjs",
74
+ "test:axe": "node test/browser/axe.mjs",
75
+ "docs:site": "pnpm --filter @setsquare/ui-docs dev",
76
+ "docs:site:build": "pnpm --filter @setsquare/ui-docs build",
77
+ "test:site": "node test/site/pages.mjs",
78
+ "test:setsquare": "node test/setsquare/run.mjs"
79
+ },
61
80
  "peerDependencies": {
62
81
  "@internationalized/date": "^3.12.4",
63
82
  "react": ">=18.3.0",
@@ -101,23 +120,5 @@
101
120
  },
102
121
  "publishConfig": {
103
122
  "access": "public"
104
- },
105
- "scripts": {
106
- "build": "node scripts/build-css.mjs && tsc -p tsconfig.json",
107
- "typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json",
108
- "typecheck:react18": "node scripts/typecheck-react18.mjs",
109
- "lint": "oxlint && node scripts/check-contrast.mjs",
110
- "format": "oxfmt",
111
- "format:check": "oxfmt --check",
112
- "test": "vitest run",
113
- "test:browser": "node test/browser/run.mjs",
114
- "docs:build": "node scripts/build-docs.mjs",
115
- "package:verify": "node scripts/verify-package.mjs",
116
- "ci:local": "node scripts/ci-local.mjs",
117
- "test:axe": "node test/browser/axe.mjs",
118
- "docs:site": "pnpm --filter @setsquare/ui-docs dev",
119
- "docs:site:build": "pnpm --filter @setsquare/ui-docs build",
120
- "test:site": "node test/site/pages.mjs",
121
- "test:setsquare": "node test/setsquare/run.mjs"
122
123
  }
123
- }
124
+ }
@@ -3,8 +3,15 @@
3
3
 
4
4
  import { useEffect } from 'react';
5
5
  import type { useRouter } from 'next/navigation';
6
- // router.prefetch's own options type names this enum, and Next exports it from nowhere public.
7
- import { PrefetchKind } from 'next/dist/client/components/router-reducer/router-reducer-types';
6
+
7
+ /**
8
+ * `router.prefetch` as Next 16 runs it. It reads `options.kind`, and `'full'` is the value of its internal
9
+ * `PrefetchKind.FULL` (the whole page, which a dynamic route needs), but its public types and documentation list
10
+ * only `onInvalidate`, and typed routes drop the options altogether. Typed here rather than imported from
11
+ * `next/dist`, so the template depends on no internal module path; if Next stops reading `kind`, the prefetch
12
+ * falls back to its default.
13
+ */
14
+ type FullPrefetch = (href: string, options: { kind: 'full' }) => void;
8
15
 
9
16
  /**
10
17
  * Warms a page when a pointer moves over a link to it or the link takes focus, as Next's own <Link> does —
@@ -19,7 +26,7 @@ export function usePrefetchOnIntent(router: ReturnType<typeof useRouter>) {
19
26
  const link = e.target instanceof Element ? e.target.closest('a[href^="/"]') : null;
20
27
  const href = link?.getAttribute('href')?.replace(/#.*$/, '');
21
28
  if (href && href !== window.location.pathname)
22
- router.prefetch(href, { kind: PrefetchKind.FULL });
29
+ (router.prefetch as unknown as FullPrefetch).call(router, href, { kind: 'full' });
23
30
  };
24
31
  document.addEventListener('pointerover', warm);
25
32
  document.addEventListener('focusin', warm);