@hadoku/task-ui-components 0.0.0-stage → 4.20.4

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 (169) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +917 -2
  3. package/dist/app-header.css +288 -0
  4. package/dist/bento.css +143 -0
  5. package/dist/button.css +227 -0
  6. package/dist/components/AppHeader.d.ts +61 -0
  7. package/dist/components/AppHeader.d.ts.map +1 -0
  8. package/dist/components/AppHeader.js +23 -0
  9. package/dist/components/AppHeader.js.map +1 -0
  10. package/dist/components/BentoCard.d.ts +23 -0
  11. package/dist/components/BentoCard.d.ts.map +1 -0
  12. package/dist/components/BentoCard.js +49 -0
  13. package/dist/components/BentoCard.js.map +1 -0
  14. package/dist/components/BentoGrid.d.ts +24 -0
  15. package/dist/components/BentoGrid.d.ts.map +1 -0
  16. package/dist/components/BentoGrid.js +22 -0
  17. package/dist/components/BentoGrid.js.map +1 -0
  18. package/dist/components/Button.d.ts +28 -0
  19. package/dist/components/Button.d.ts.map +1 -0
  20. package/dist/components/Button.js +51 -0
  21. package/dist/components/Button.js.map +1 -0
  22. package/dist/components/ConnectedSettings.d.ts +53 -0
  23. package/dist/components/ConnectedSettings.d.ts.map +1 -0
  24. package/dist/components/ConnectedSettings.js +368 -0
  25. package/dist/components/ConnectedSettings.js.map +1 -0
  26. package/dist/components/ConnectedThemePicker.d.ts +52 -0
  27. package/dist/components/ConnectedThemePicker.d.ts.map +1 -0
  28. package/dist/components/ConnectedThemePicker.js +32 -0
  29. package/dist/components/ConnectedThemePicker.js.map +1 -0
  30. package/dist/components/ContextMenu.d.ts +22 -0
  31. package/dist/components/ContextMenu.d.ts.map +1 -0
  32. package/dist/components/ContextMenu.js +23 -0
  33. package/dist/components/ContextMenu.js.map +1 -0
  34. package/dist/components/HadokuThemePicker.d.ts +27 -0
  35. package/dist/components/HadokuThemePicker.d.ts.map +1 -0
  36. package/dist/components/HadokuThemePicker.js +19 -0
  37. package/dist/components/HadokuThemePicker.js.map +1 -0
  38. package/dist/components/LoadingSkeleton.d.ts +14 -0
  39. package/dist/components/LoadingSkeleton.d.ts.map +1 -0
  40. package/dist/components/LoadingSkeleton.js +62 -0
  41. package/dist/components/LoadingSkeleton.js.map +1 -0
  42. package/dist/components/Modal.d.ts +39 -0
  43. package/dist/components/Modal.d.ts.map +1 -0
  44. package/dist/components/Modal.js +106 -0
  45. package/dist/components/Modal.js.map +1 -0
  46. package/dist/components/NumberInput.d.ts +26 -0
  47. package/dist/components/NumberInput.d.ts.map +1 -0
  48. package/dist/components/NumberInput.js +131 -0
  49. package/dist/components/NumberInput.js.map +1 -0
  50. package/dist/components/Select.d.ts +52 -0
  51. package/dist/components/Select.d.ts.map +1 -0
  52. package/dist/components/Select.js +281 -0
  53. package/dist/components/Select.js.map +1 -0
  54. package/dist/components/SettingsModal.d.ts +69 -0
  55. package/dist/components/SettingsModal.d.ts.map +1 -0
  56. package/dist/components/SettingsModal.js +141 -0
  57. package/dist/components/SettingsModal.js.map +1 -0
  58. package/dist/components/ThemeIcons.d.ts +26 -0
  59. package/dist/components/ThemeIcons.d.ts.map +1 -0
  60. package/dist/components/ThemeIcons.js +74 -0
  61. package/dist/components/ThemeIcons.js.map +1 -0
  62. package/dist/components/ThemePicker.d.ts +28 -0
  63. package/dist/components/ThemePicker.d.ts.map +1 -0
  64. package/dist/components/ThemePicker.js +101 -0
  65. package/dist/components/ThemePicker.js.map +1 -0
  66. package/dist/components/Toast.d.ts +13 -0
  67. package/dist/components/Toast.d.ts.map +1 -0
  68. package/dist/components/Toast.js +70 -0
  69. package/dist/components/Toast.js.map +1 -0
  70. package/dist/components/Toaster.d.ts +19 -0
  71. package/dist/components/Toaster.d.ts.map +1 -0
  72. package/dist/components/Toaster.js +19 -0
  73. package/dist/components/Toaster.js.map +1 -0
  74. package/dist/components/Tooltip.d.ts +49 -0
  75. package/dist/components/Tooltip.d.ts.map +1 -0
  76. package/dist/components/Tooltip.js +143 -0
  77. package/dist/components/Tooltip.js.map +1 -0
  78. package/dist/context-menu.css +11 -0
  79. package/dist/controls.css +137 -0
  80. package/dist/hooks/useReducedMotion.d.ts +7 -0
  81. package/dist/hooks/useReducedMotion.d.ts.map +1 -0
  82. package/dist/hooks/useReducedMotion.js +25 -0
  83. package/dist/hooks/useReducedMotion.js.map +1 -0
  84. package/dist/hooks/useToast.d.ts +18 -0
  85. package/dist/hooks/useToast.d.ts.map +1 -0
  86. package/dist/hooks/useToast.js +28 -0
  87. package/dist/hooks/useToast.js.map +1 -0
  88. package/dist/icon-btn.css +64 -0
  89. package/dist/index.d.ts +49 -0
  90. package/dist/index.d.ts.map +1 -0
  91. package/dist/index.js +75 -0
  92. package/dist/index.js.map +1 -0
  93. package/dist/lib/menuPlacement.d.ts +16 -0
  94. package/dist/lib/menuPlacement.d.ts.map +1 -0
  95. package/dist/lib/menuPlacement.js +19 -0
  96. package/dist/lib/menuPlacement.js.map +1 -0
  97. package/dist/lib/selectMenus.d.ts +30 -0
  98. package/dist/lib/selectMenus.d.ts.map +1 -0
  99. package/dist/lib/selectMenus.js +236 -0
  100. package/dist/lib/selectMenus.js.map +1 -0
  101. package/dist/lib/settingsClient.d.ts +144 -0
  102. package/dist/lib/settingsClient.d.ts.map +1 -0
  103. package/dist/lib/settingsClient.js +157 -0
  104. package/dist/lib/settingsClient.js.map +1 -0
  105. package/dist/lib/themeScope.d.ts +19 -0
  106. package/dist/lib/themeScope.d.ts.map +1 -0
  107. package/dist/lib/themeScope.js +10 -0
  108. package/dist/lib/themeScope.js.map +1 -0
  109. package/dist/lib/titleTooltips.d.ts +38 -0
  110. package/dist/lib/titleTooltips.d.ts.map +1 -0
  111. package/dist/lib/titleTooltips.js +166 -0
  112. package/dist/lib/titleTooltips.js.map +1 -0
  113. package/dist/lib/tooltipPlacement.d.ts +14 -0
  114. package/dist/lib/tooltipPlacement.d.ts.map +1 -0
  115. package/dist/lib/tooltipPlacement.js +34 -0
  116. package/dist/lib/tooltipPlacement.js.map +1 -0
  117. package/dist/modal.css +129 -0
  118. package/dist/number-input.css +131 -0
  119. package/dist/scrollbar.css +165 -0
  120. package/dist/select.css +251 -0
  121. package/dist/styles.css +1866 -0
  122. package/dist/task-ui-components.css +1866 -0
  123. package/dist/theme-picker.css +219 -0
  124. package/dist/toaster.css +159 -0
  125. package/dist/tooltip.css +103 -0
  126. package/dist/types/index.d.ts +37 -0
  127. package/dist/types/index.d.ts.map +1 -0
  128. package/package.json +60 -4
  129. package/src/app-header.css +288 -0
  130. package/src/bento.css +143 -0
  131. package/src/button.css +227 -0
  132. package/src/components/AppHeader.tsx +87 -0
  133. package/src/components/BentoCard.tsx +72 -0
  134. package/src/components/BentoGrid.tsx +48 -0
  135. package/src/components/Button.tsx +81 -0
  136. package/src/components/ConnectedSettings.tsx +545 -0
  137. package/src/components/ConnectedThemePicker.tsx +79 -0
  138. package/src/components/ContextMenu.tsx +48 -0
  139. package/src/components/HadokuThemePicker.tsx +39 -0
  140. package/src/components/LoadingSkeleton.tsx +84 -0
  141. package/src/components/Modal.tsx +171 -0
  142. package/src/components/NumberInput.tsx +161 -0
  143. package/src/components/Select.tsx +359 -0
  144. package/src/components/SettingsModal.tsx +235 -0
  145. package/src/components/ThemeIcons.tsx +127 -0
  146. package/src/components/ThemePicker.tsx +149 -0
  147. package/src/components/Toast.tsx +92 -0
  148. package/src/components/Toaster.tsx +43 -0
  149. package/src/components/Tooltip.tsx +212 -0
  150. package/src/context-menu.css +11 -0
  151. package/src/controls.css +137 -0
  152. package/src/hooks/useReducedMotion.ts +36 -0
  153. package/src/hooks/useToast.ts +57 -0
  154. package/src/icon-btn.css +64 -0
  155. package/src/index.ts +153 -0
  156. package/src/lib/menuPlacement.ts +31 -0
  157. package/src/lib/selectMenus.ts +303 -0
  158. package/src/lib/settingsClient.ts +425 -0
  159. package/src/lib/themeScope.ts +23 -0
  160. package/src/lib/titleTooltips.ts +236 -0
  161. package/src/lib/tooltipPlacement.ts +59 -0
  162. package/src/modal.css +129 -0
  163. package/src/number-input.css +131 -0
  164. package/src/scrollbar.css +165 -0
  165. package/src/select.css +251 -0
  166. package/src/theme-picker.css +219 -0
  167. package/src/toaster.css +159 -0
  168. package/src/tooltip.css +103 -0
  169. package/src/types/index.ts +43 -0
@@ -0,0 +1,103 @@
1
+ /* Tooltip styles for @wolffm/task-ui-components.
2
+ *
3
+ * import '@wolffm/task-ui-components/tooltip.css'
4
+ *
5
+ * `inverse` paints body text colour as the surface and the page background
6
+ * as the text — the same pair as body copy, flipped, so its contrast is the
7
+ * theme's own text contrast in every theme.
8
+ */
9
+
10
+ .hdk-tooltip {
11
+ --_tip-bg: var(--color-text);
12
+ --_tip-fg: var(--color-bg);
13
+ --_tip-border: transparent;
14
+ /* Overwritten inline once placed: where the anchor's centre falls. */
15
+ --hdk-tooltip-arrow: 50%;
16
+
17
+ position: fixed;
18
+ z-index: 1100;
19
+ max-width: min(280px, calc(100vw - 16px));
20
+ padding: 6px 10px;
21
+ font-size: var(--hdk-text-xs);
22
+ font-weight: var(--font-weight-normal);
23
+ line-height: 1.4;
24
+ text-align: left;
25
+ white-space: normal;
26
+ overflow-wrap: break-word;
27
+ color: var(--_tip-fg);
28
+ background-color: var(--_tip-bg);
29
+ border: 1px solid var(--_tip-border);
30
+ border-radius: var(--hdk-radius);
31
+ box-shadow: var(--hdk-shadow-md);
32
+ /* A fade, never a slide: a transform puts the bubble on its own layer, so
33
+ * its 1px border smears across rows mid-slide and visibly snaps back into
34
+ * place when the transition ends. */
35
+ opacity: 0;
36
+ transition: opacity var(--transition-fast);
37
+ }
38
+
39
+ .hdk-tooltip--visible {
40
+ opacity: 1;
41
+ }
42
+
43
+ .hdk-tooltip--card {
44
+ --_tip-bg: var(--color-bg-card);
45
+ --_tip-fg: var(--color-text);
46
+ --_tip-border: var(--color-border);
47
+
48
+ box-shadow: var(--hdk-shadow-lg);
49
+ }
50
+
51
+ /* A `title=` string from installTitleTooltips: plain text, and its line
52
+ * breaks are real (a native title shows them too). */
53
+ .hdk-tooltip--plain {
54
+ white-space: pre-line;
55
+ }
56
+
57
+ .hdk-tooltip--primary {
58
+ --_tip-bg: var(--color-primary);
59
+ --_tip-fg: var(--color-on-primary);
60
+ }
61
+
62
+ /* ── arrow ────────────────────────────────────────────────────────────── */
63
+
64
+ /* A rotated square sharing the bubble's fill and border; only its two outer
65
+ * edges carry the border, so it reads as one shape with the bubble. */
66
+ .hdk-tooltip::after {
67
+ content: '';
68
+ position: absolute;
69
+ width: 8px;
70
+ height: 8px;
71
+ background-color: var(--_tip-bg);
72
+ border: 1px solid var(--_tip-border);
73
+ border-top-color: transparent;
74
+ border-left-color: transparent;
75
+ }
76
+
77
+ .hdk-tooltip--top::after {
78
+ top: 100%;
79
+ left: var(--hdk-tooltip-arrow);
80
+ translate: -50% -50%;
81
+ rotate: 45deg;
82
+ }
83
+
84
+ .hdk-tooltip--bottom::after {
85
+ bottom: 100%;
86
+ left: var(--hdk-tooltip-arrow);
87
+ translate: -50% 50%;
88
+ rotate: -135deg;
89
+ }
90
+
91
+ .hdk-tooltip--left::after {
92
+ left: 100%;
93
+ top: var(--hdk-tooltip-arrow);
94
+ translate: -50% -50%;
95
+ rotate: -45deg;
96
+ }
97
+
98
+ .hdk-tooltip--right::after {
99
+ right: 100%;
100
+ top: var(--hdk-tooltip-arrow);
101
+ translate: 50% -50%;
102
+ rotate: 135deg;
103
+ }
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Type definitions for @wolffm/task-ui-components
3
+ */
4
+
5
+ import type { ReactNode } from 'react'
6
+ // The theme MODEL lives in @wolffm/themes now; this file keeps only the types
7
+ // that describe THIS package's components. Re-exported so existing imports of
8
+ // ThemeName/ThemeFamily/ThemeMode from here keep resolving — to the same
9
+ // declarations, not copies.
10
+ export type { ThemeName, ThemeFamily, ThemeMode } from '@wolffm/themes'
11
+ import type { ThemeName, ThemeFamily } from '@wolffm/themes'
12
+
13
+ /**
14
+ * Dropdown placement direction
15
+ * - 'right': Opens to the right of the toggle button (default)
16
+ * - 'left': Opens to the left of the toggle button
17
+ * - 'auto': Automatically detects edge collisions and flips direction
18
+ */
19
+ export type DropdownPlacement = 'left' | 'right' | 'auto'
20
+
21
+ /**
22
+ * Theme picker component props
23
+ */
24
+ export interface ThemePickerProps {
25
+ /** Current active theme */
26
+ currentTheme: ThemeName
27
+ /** Whether the theme picker dropdown is visible */
28
+ isOpen: boolean
29
+ /** Available theme families */
30
+ themeFamilies: ThemeFamily[]
31
+ /** Callback when theme is changed */
32
+ onThemeChange: (theme: ThemeName) => void
33
+ /** Callback to toggle picker visibility */
34
+ onToggle: () => void
35
+ /** Optional callback when settings icon is clicked */
36
+ onSettingsClick?: () => void
37
+ /** Optional: Function to get icon for current theme (for toggle button) */
38
+ getThemeIcon?: (theme: ThemeName) => ReactNode
39
+ /** Optional: CSS class name for the container */
40
+ className?: string
41
+ /** Optional: Direction the dropdown opens. Defaults to 'auto' (edge detection) */
42
+ dropdownPlacement?: DropdownPlacement
43
+ }