@dhasdk/simple-ui 1.0.8 → 1.0.10

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 (228) hide show
  1. package/README.md +2 -2
  2. package/index.css +1 -0
  3. package/{src/index.ts → index.d.ts} +8 -15
  4. package/index.js +34 -0
  5. package/index.mjs +5473 -0
  6. package/lib/Accordion.d.ts +36 -0
  7. package/lib/AppointmentPicker.d.ts +21 -0
  8. package/lib/Badge.d.ts +11 -0
  9. package/lib/Breadcrumbs.d.ts +13 -0
  10. package/lib/Button.d.ts +15 -0
  11. package/lib/ButtonGroup.d.ts +8 -0
  12. package/lib/Card.d.ts +11 -0
  13. package/lib/CharacterCounter.d.ts +11 -0
  14. package/lib/CheckBox.d.ts +30 -0
  15. package/lib/DatePicker.d.ts +7 -0
  16. package/lib/Input.d.ts +16 -0
  17. package/lib/List.d.ts +22 -0
  18. package/lib/Modal.d.ts +18 -0
  19. package/lib/Pill.d.ts +13 -0
  20. package/lib/ProgressBar.d.ts +19 -0
  21. package/lib/RadioGroup.d.ts +16 -0
  22. package/lib/RadioIcon.d.ts +3 -0
  23. package/lib/Search.d.ts +26 -0
  24. package/lib/SearchContent.d.ts +6 -0
  25. package/lib/SectionHeader.d.ts +18 -0
  26. package/lib/Select.d.ts +19 -0
  27. package/lib/Shield.d.ts +12 -0
  28. package/lib/SideBarNav.d.ts +21 -0
  29. package/lib/Skeleton.d.ts +15 -0
  30. package/lib/SkipLink.d.ts +23 -0
  31. package/lib/Slider.d.ts +14 -0
  32. package/lib/Status.d.ts +10 -0
  33. package/lib/Tabs.d.ts +26 -0
  34. package/lib/Toggle.d.ts +11 -0
  35. package/lib/Tooltip.d.ts +14 -0
  36. package/package.json +1 -1
  37. package/.babelrc +0 -12
  38. package/.storybook/main.ts +0 -35
  39. package/.storybook/preview.ts +0 -4
  40. package/BAKpostcss.config.jsBAK +0 -15
  41. package/BAKtailwind.config.mjsBAK +0 -99
  42. package/coverage/storybook/coverage-storybook.json +0 -32411
  43. package/coverage/storybook/lcov-report/Accordion.tsx.html +0 -805
  44. package/coverage/storybook/lcov-report/Badge.tsx.html +0 -346
  45. package/coverage/storybook/lcov-report/Breadcrumbs.tsx.html +0 -742
  46. package/coverage/storybook/lcov-report/Button.tsx.html +0 -448
  47. package/coverage/storybook/lcov-report/ButtonGroup.tsx.html +0 -403
  48. package/coverage/storybook/lcov-report/Card.tsx.html +0 -292
  49. package/coverage/storybook/lcov-report/CharacterCounter.tsx.html +0 -253
  50. package/coverage/storybook/lcov-report/CheckBox.tsx.html +0 -1555
  51. package/coverage/storybook/lcov-report/DatePicker.tsx.html +0 -826
  52. package/coverage/storybook/lcov-report/Input.tsx.html +0 -1012
  53. package/coverage/storybook/lcov-report/List.tsx.html +0 -364
  54. package/coverage/storybook/lcov-report/Modal.tsx.html +0 -745
  55. package/coverage/storybook/lcov-report/Pill.tsx.html +0 -358
  56. package/coverage/storybook/lcov-report/Search.tsx.html +0 -997
  57. package/coverage/storybook/lcov-report/SearchContent.tsx.html +0 -235
  58. package/coverage/storybook/lcov-report/SectionHeader.tsx.html +0 -358
  59. package/coverage/storybook/lcov-report/Select.tsx.html +0 -1012
  60. package/coverage/storybook/lcov-report/Shield.tsx.html +0 -802
  61. package/coverage/storybook/lcov-report/SideBarNav.tsx.html +0 -490
  62. package/coverage/storybook/lcov-report/Skeleton.tsx.html +0 -394
  63. package/coverage/storybook/lcov-report/Slider.tsx.html +0 -385
  64. package/coverage/storybook/lcov-report/Status.tsx.html +0 -322
  65. package/coverage/storybook/lcov-report/Tabs.tsx.html +0 -610
  66. package/coverage/storybook/lcov-report/Toggle.tsx.html +0 -373
  67. package/coverage/storybook/lcov-report/Tooltip.tsx.html +0 -496
  68. package/coverage/storybook/lcov-report/base.css +0 -224
  69. package/coverage/storybook/lcov-report/block-navigation.js +0 -87
  70. package/coverage/storybook/lcov-report/favicon.png +0 -0
  71. package/coverage/storybook/lcov-report/index.html +0 -476
  72. package/coverage/storybook/lcov-report/prettify.css +0 -1
  73. package/coverage/storybook/lcov-report/prettify.js +0 -2
  74. package/coverage/storybook/lcov-report/sort-arrow-sprite.png +0 -0
  75. package/coverage/storybook/lcov-report/sorter.js +0 -196
  76. package/coverage/storybook/lcov.info +0 -2312
  77. package/dist/README.md +0 -1815
  78. package/eslint.config.mjs +0 -13
  79. package/project.json +0 -11
  80. package/src/assets/img/Frame.svg +0 -5
  81. package/src/assets/img/backArrowRight.svg +0 -10
  82. package/src/assets/img/bc-separator.png +0 -0
  83. package/src/assets/img/calendar.png +0 -0
  84. package/src/assets/img/calendar.svg +0 -4
  85. package/src/assets/img/check.svg +0 -5
  86. package/src/assets/img/check_box.svg +0 -10
  87. package/src/assets/img/check_box_empty.svg +0 -10
  88. package/src/assets/img/check_box_fill.svg +0 -10
  89. package/src/assets/img/check_box_fill_empty.svg +0 -10
  90. package/src/assets/img/chevron-down-white.svg +0 -2
  91. package/src/assets/img/chevron-down.svg +0 -2
  92. package/src/assets/img/chevron-left.svg +0 -1
  93. package/src/assets/img/chevron-right-light.svg +0 -4
  94. package/src/assets/img/chevron-right.svg +0 -3
  95. package/src/assets/img/chevron-up-white.svg +0 -1
  96. package/src/assets/img/chevron-up.svg +0 -1
  97. package/src/assets/img/clock.svg +0 -6
  98. package/src/assets/img/close.svg +0 -1
  99. package/src/assets/img/close2.svg +0 -6
  100. package/src/assets/img/closeModal.svg +0 -10
  101. package/src/assets/img/close_icon_dark.svg +0 -10
  102. package/src/assets/img/close_small.svg +0 -3
  103. package/src/assets/img/emergency_home.svg +0 -10
  104. package/src/assets/img/first-aid-kit.svg +0 -7
  105. package/src/assets/img/heartbeat.svg +0 -4
  106. package/src/assets/img/home-gray.svg +0 -3
  107. package/src/assets/img/home.svg +0 -3
  108. package/src/assets/img/hospital.jpg +0 -0
  109. package/src/assets/img/indeterminate_check_box.svg +0 -10
  110. package/src/assets/img/indeterminate_check_box_fill.svg +0 -10
  111. package/src/assets/img/info_24_ 1d4ed8.svg +0 -3
  112. package/src/assets/img/info_24_ 2c6441.svg +0 -3
  113. package/src/assets/img/marker_check_by_default.svg +0 -10
  114. package/src/assets/img/marker_check_by_default_fill.svg +0 -10
  115. package/src/assets/img/minus-accordion.svg +0 -5
  116. package/src/assets/img/minus.svg +0 -3
  117. package/src/assets/img/open.svg +0 -1
  118. package/src/assets/img/pill-white.svg +0 -7
  119. package/src/assets/img/pill.svg +0 -5
  120. package/src/assets/img/plus-accordion.svg +0 -5
  121. package/src/assets/img/plus.svg +0 -4
  122. package/src/assets/img/prescription.svg +0 -6
  123. package/src/assets/img/search.svg +0 -10
  124. package/src/assets/img/search_icon_light.svg +0 -10
  125. package/src/assets/img/separator.svg +0 -3
  126. package/src/assets/img/stethoscope-white.svg +0 -8
  127. package/src/assets/img/stethoscope.svg +0 -8
  128. package/src/assets/img/thumb_up.svg +0 -10
  129. package/src/assets/img/vector.svg +0 -3
  130. package/src/assets/img/warning-badge-disabled.svg +0 -11
  131. package/src/assets/img/warning-badge-green.svg +0 -11
  132. package/src/assets/img/warning-badge-red.svg +0 -11
  133. package/src/assets/img/warning-badge-yellow.svg +0 -11
  134. package/src/assets/img/warning.svg +0 -10
  135. package/src/global.d.ts +0 -13
  136. package/src/lib/Accordian--Accordian.stories.tsx +0 -312
  137. package/src/lib/Accordion.spec.tsx +0 -384
  138. package/src/lib/Accordion.tsx +0 -240
  139. package/src/lib/AppointmentPicker.spec.tsx +0 -138
  140. package/src/lib/AppointmentPicker.tsx +0 -97
  141. package/src/lib/Badge--Badge.stories.tsx +0 -60
  142. package/src/lib/Badge.spec.tsx +0 -70
  143. package/src/lib/Badge.tsx +0 -87
  144. package/src/lib/Breadcrumbs-Breadcrumbs.stories.tsx +0 -114
  145. package/src/lib/Breadcrumbs.spec.tsx +0 -218
  146. package/src/lib/Breadcrumbs.tsx +0 -219
  147. package/src/lib/Button--Button.stories.tsx +0 -220
  148. package/src/lib/Button.spec.tsx +0 -241
  149. package/src/lib/Button.tsx +0 -121
  150. package/src/lib/ButtonGroup--ButtonGroup.stories.tsx +0 -129
  151. package/src/lib/ButtonGroup.spec.tsx +0 -89
  152. package/src/lib/ButtonGroup.tsx +0 -107
  153. package/src/lib/Card--Card.stories.tsx +0 -113
  154. package/src/lib/Card.spec.tsx +0 -112
  155. package/src/lib/Card.tsx +0 -69
  156. package/src/lib/CharacterCounter--CharacterCounter.stories.tsx +0 -169
  157. package/src/lib/CharacterCounter.spec.tsx +0 -123
  158. package/src/lib/CharacterCounter.tsx +0 -56
  159. package/src/lib/CheckBox--CheckBox.stories.tsx +0 -107
  160. package/src/lib/CheckBox.spec.tsx +0 -412
  161. package/src/lib/CheckBox.tsx +0 -491
  162. package/src/lib/DatePicker--DatePicker.stories.tsx +0 -228
  163. package/src/lib/DatePicker.spec.tsx +0 -424
  164. package/src/lib/DatePicker.tsx +0 -247
  165. package/src/lib/Input--Input.stories.tsx +0 -449
  166. package/src/lib/Input.spec.tsx +0 -281
  167. package/src/lib/Input.tsx +0 -309
  168. package/src/lib/List--List.stories.tsx +0 -157
  169. package/src/lib/List.spec.tsx +0 -211
  170. package/src/lib/List.tsx +0 -93
  171. package/src/lib/Modal--Modal.stories.tsx +0 -454
  172. package/src/lib/Modal.spec.tsx +0 -202
  173. package/src/lib/Modal.tsx +0 -220
  174. package/src/lib/Pill--Pill.stories.tsx +0 -98
  175. package/src/lib/Pill.spec.tsx +0 -103
  176. package/src/lib/Pill.tsx +0 -91
  177. package/src/lib/ProgressBar.spec.tsx +0 -106
  178. package/src/lib/ProgressBar.tsx +0 -112
  179. package/src/lib/RadioGroup.spec.tsx +0 -84
  180. package/src/lib/RadioGroup.tsx +0 -74
  181. package/src/lib/RadioIcon.tsx +0 -13
  182. package/src/lib/Search--Search.stories.tsx +0 -67
  183. package/src/lib/Search.spec.tsx +0 -182
  184. package/src/lib/Search.tsx +0 -304
  185. package/src/lib/SearchContent.tsx +0 -51
  186. package/src/lib/SectionHeader--SectionHeader.stories.tsx +0 -98
  187. package/src/lib/SectionHeader.spec.tsx +0 -60
  188. package/src/lib/SectionHeader.tsx +0 -91
  189. package/src/lib/Select--Select.stories.tsx +0 -387
  190. package/src/lib/Select.spec.tsx +0 -493
  191. package/src/lib/Select.tsx +0 -311
  192. package/src/lib/Shield--Shield.stories.tsx +0 -196
  193. package/src/lib/Shield.spec.tsx +0 -275
  194. package/src/lib/Shield.tsx +0 -239
  195. package/src/lib/SideBarNav--SideBarNav.stories.tsx +0 -136
  196. package/src/lib/SideBarNav.spec.tsx +0 -178
  197. package/src/lib/SideBarNav.tsx +0 -135
  198. package/src/lib/Skeleton--Skeleton.stories.tsx +0 -77
  199. package/src/lib/Skeleton.module.css +0 -16
  200. package/src/lib/Skeleton.spec.tsx +0 -83
  201. package/src/lib/Skeleton.tsx +0 -103
  202. package/src/lib/SkipLink.spec.tsx +0 -76
  203. package/src/lib/SkipLink.tsx +0 -48
  204. package/src/lib/Slider--Slider.stories.tsx +0 -108
  205. package/src/lib/Slider.module.css +0 -109
  206. package/src/lib/Slider.spec.tsx +0 -67
  207. package/src/lib/Slider.tsx +0 -101
  208. package/src/lib/Status--Status.stories.tsx +0 -93
  209. package/src/lib/Status.spec.tsx +0 -118
  210. package/src/lib/Status.tsx +0 -79
  211. package/src/lib/Tabs--Tabs.stories.tsx +0 -294
  212. package/src/lib/Tabs.spec.tsx +0 -249
  213. package/src/lib/Tabs.tsx +0 -188
  214. package/src/lib/Tester.spec.tsx +0 -17
  215. package/src/lib/Toggle--Toggle.stories.tsx +0 -162
  216. package/src/lib/Toggle.spec.tsx +0 -122
  217. package/src/lib/Toggle.tsx +0 -96
  218. package/src/lib/Tooltip--Tooltip.stories.tsx +0 -315
  219. package/src/lib/Tooltip.spec.tsx +0 -307
  220. package/src/lib/Tooltip.tsx +0 -137
  221. package/src/lib/bak-simple-ui.stories.tsx-bak +0 -24
  222. package/src/styles.css +0 -190
  223. package/tsconfig.json +0 -25
  224. package/tsconfig.lib.json +0 -42
  225. package/tsconfig.spec.json +0 -29
  226. package/tsconfig.storybook.json +0 -36
  227. package/vite.config.mts +0 -87
  228. package/vitest.setup.ts +0 -12
@@ -1,137 +0,0 @@
1
- import React, {
2
- ReactNode,
3
- forwardRef,
4
- useState,
5
- useCallback,
6
- Children,
7
- isValidElement,
8
- useEffect,
9
- createContext,
10
- useContext,
11
- } from 'react';
12
- import { twMerge } from 'tailwind-merge';
13
-
14
- export interface TooltipProps {
15
- className?: string;
16
- delay?: number; // delay in ms before showing the tooltip
17
- id?: string; // id to reference tooltip-content via tooltip
18
- children: ReactNode;
19
- }
20
-
21
- interface TooltipContextType {
22
- id: string;
23
- }
24
-
25
- const TooltipContext = createContext<TooltipContextType | undefined>(undefined);
26
-
27
- export const Tooltip = forwardRef<HTMLDivElement, TooltipProps>(
28
- ({ children, delay = 0, className, id='tooltip-content',
29
- ...props }, ref) => {
30
-
31
- const [isHovered, setIsHovered] = useState(false);
32
- let hoverTimeout: ReturnType<typeof setTimeout>;
33
-
34
- const handleMouseEnter = useCallback(() => {
35
- hoverTimeout = setTimeout(() => setIsHovered(true), delay);
36
- }, [delay]);
37
-
38
- const handleMouseLeave = useCallback(() => {
39
- clearTimeout(hoverTimeout);
40
- setIsHovered(false);
41
- }, []);
42
-
43
- // Separate the trigger element from the TooltipContent component.
44
- const childrenArray = Children.toArray(children);
45
-
46
- const trigger = childrenArray.find((child) => {
47
- if (isValidElement(child)) {
48
- // If the child is not a TooltipContent, treat it as the trigger.
49
- return (child.type as any).displayName !== 'TooltipContent';
50
- }
51
- });
52
-
53
- const tooltipContent = childrenArray.find((child) => {
54
- if (isValidElement(child)) {
55
- return (child.type as any).displayName === 'TooltipContent';
56
- }
57
- });
58
-
59
- return (
60
- <TooltipContext.Provider value={{ id }} >
61
- <div
62
- ref={ref}
63
- className={twMerge('relative inline-block', className)}
64
- onMouseEnter={handleMouseEnter}
65
- onMouseLeave={handleMouseLeave}
66
- aria-describedby={id}
67
- onFocus={handleMouseEnter} // keyboard support
68
- onBlur={handleMouseLeave}
69
- {...props}
70
- >
71
- {trigger}
72
- {isHovered && tooltipContent}
73
- </div>
74
- </TooltipContext.Provider>
75
- );
76
- }
77
- );
78
-
79
- Tooltip.displayName = 'Tooltip';
80
-
81
- export interface TooltipContentProps {
82
- children?: ReactNode;
83
- className?: string;
84
- position?: string;
85
- }
86
-
87
- export const TooltipContent = forwardRef<HTMLDivElement, TooltipContentProps>(
88
- ({ children, className, position, ...props }, ref) => {
89
-
90
- const [positionClasses, setPositionClasses] = useState<string>('mt-2');
91
- const context = useContext(TooltipContext);
92
- if (!context) {
93
- throw new Error('TooltipContent must be used within a tooltip');
94
- }
95
- const { id } = context;
96
-
97
- useEffect(() => {
98
- if (position === 's') {
99
- setPositionClasses('left-1/2 -translate-x-1/2 top-full mt-2')
100
- } else if (position === 'n') {
101
- setPositionClasses('left-1/2 -translate-x-1/2 -top-1 -translate-y-full ')
102
- } else if (position === 'nw') {
103
- setPositionClasses('left-0 -top-1 -translate-y-full');
104
- } else if (position === 'ne') {
105
- setPositionClasses('right-0 -top-1 -translate-y-full');
106
- } else if (position === 'se') {
107
- setPositionClasses('right-0 top-full mt-2');
108
- } else if (position === 'w') {
109
- setPositionClasses('-translate-x-full -left-2 -translate-y-1/2 top-1/2');
110
- } else if (position === 'e') {
111
- setPositionClasses('-right-2 translate-x-full -translate-y-1/2 top-1/2');
112
- } else if (position === 'c') {
113
- setPositionClasses('left-1/2 -translate-x-1/2 top-1/2 -translate-y-1/2')
114
- }
115
-
116
- }, [position, className]);
117
-
118
- return (
119
- <div
120
- ref={ref}
121
- id={id}
122
- role="tooltip"
123
- className={twMerge(
124
- 'absolute z-10 px-4 py-2 origin-center bg-slate-800 text-slate-100 ' +
125
- 'border border-slate-500 text-sm rounded-sm shadow-md',
126
- positionClasses,
127
- className
128
- )}
129
- {...props}
130
- >
131
- {children}
132
- </div>
133
- );
134
- }
135
- );
136
-
137
- TooltipContent.displayName = 'TooltipContent';
@@ -1,24 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react';
2
- import { SimpleUi } from './simple-ui';
3
-
4
- import { within } from '@storybook/test';
5
- import { expect } from '@storybook/jest';
6
-
7
- const meta: Meta<typeof SimpleUi> = {
8
- component: SimpleUi,
9
- title: 'SimpleUi',
10
- };
11
- export default meta;
12
- type Story = StoryObj<typeof SimpleUi>;
13
-
14
- export const Primary = {
15
- args: {},
16
- };
17
-
18
- export const Heading: Story = {
19
- args: {},
20
- play: async ({ canvasElement }) => {
21
- const canvas = within(canvasElement);
22
- expect(canvas.getByText(/Welcome to SimpleUi!/gi)).toBeTruthy();
23
- },
24
- };
package/src/styles.css DELETED
@@ -1,190 +0,0 @@
1
- /* tailwind.css ── Tailwind v4, CSS-first configuration */
2
-
3
- /*
4
- * 1. Pull in Tailwind’s engine
5
- * (equivalent to @tailwind base/components/utilities in v3)
6
- */
7
- @import "tailwindcss";
8
-
9
- /* ---------------------------------------------------------------------
10
- Dynamic utilities that must ALWAYS be present at build-time
11
- ------------------------------------------------------------------ */
12
-
13
- /* 1) background-color utilities + variants ------------------------- */
14
- @source inline("{,hover:,disabled:,md:,lg:}bg-{slate,gray,zinc,neutral,stone,red,orange,amber,yellow,lime,green,emerald,teal,cyan,sky,blue,indigo,violet,purple,fuchsia,pink,rose}-{50,{100..900..100},950}");
15
-
16
- /* 2) logical size (w + h) utilities -------------------------------- */
17
- @source inline("{,disabled:,md:,lg:}size-{0,px,0.5,1,1.5,2,2.5,3,3.5,4,5,6,7,8,9,10,11,12,14,16,20,24,28,32,36,40,44,48,52,56,60,64,72,80,96}");
18
-
19
- /* 3) SVG fill + stroke colors -------------------------------------- */
20
- @source inline("fill-{slate,gray,zinc,neutral,stone,red,orange,amber,yellow,lime,green,emerald,teal,cyan,sky,blue,indigo,violet,purple,fuchsia,pink,rose}-{50,{100..900..100},950}");
21
- @source inline("stroke-{slate,gray,zinc,neutral,stone,red,orange,amber,yellow,lime,green,emerald,teal,cyan,sky,blue,indigo,violet,purple,fuchsia,pink,rose}-{50,{100..900..100},950}");
22
-
23
- /* 4) text-color utilities + variants -------------------------------- */
24
- @source inline("{,hover:,disabled:,md:,lg:}text-{slate,gray,zinc,neutral,stone,red,orange,amber,yellow,lime,green,emerald,teal,cyan,sky,blue,indigo,violet,purple,fuchsia,pink,rose}-{50,{100..900..100},950}");
25
-
26
- /* 5) border-color utilities + variants ------------------------------ */
27
- @source inline("{,hover:,disabled:}border-{slate,gray,zinc,neutral,stone,red,orange,amber,yellow,lime,green,emerald,teal,cyan,sky,blue,indigo,violet,purple,fuchsia,pink,rose}-{50,{100..900..100},950}");
28
-
29
- /* 6) explicit h-* and w-* for breakpoints --------------------------- */
30
- @source inline("{,md:,lg:}h-{0,px,0.5,1,1.5,2,2.5,3,3.5,4,5,6,7,8,9,10,11,12,14,16,20,24,28,32,36,40,44,48,52,56,60,64,72,80,96}");
31
- @source inline("{,md:,lg:}w-{0,px,0.5,1,1.5,2,2.5,3,3.5,4,5,6,7,8,9,10,11,12,14,16,20,24,28,32,36,40,44,48,52,56,60,64,72,80,96}");
32
-
33
- /* 7) outline-* (width) and leading-* (line-height) ------------------ */
34
- @source inline("{,md:,lg:}outline-{0,1,2,4,8}");
35
- @source inline("{,md:,lg:}leading-{3,4,5,6,7,8,9}");
36
-
37
- @source './';
38
-
39
- /*
40
- * 2. Design tokens ➜ @theme
41
- * Any --color-* / --radius-* variable declared here becomes a real utility:
42
- * bg-dha-blue, text-border, rounded-md, etc.
43
- */
44
- @theme {
45
- /* ─── Brand palette ─── */
46
- --color-dha-dark-blue: #07192d;
47
- --color-dha-blue: #092068;
48
- --color-dha-red: #582831;
49
- --color-dha-grey: #414042;
50
- --color-dha-light-blue: #5992fa;
51
- --color-dha-green: #5aab46;
52
- --color-dha-yellow: #ffd03f;
53
-
54
- /* ─── Mobile-check palette ─── */
55
- --color-dha-mc-true-blue: #0256AB;
56
- --color-dha-mc-pale-blue: #E3EBF3;
57
- --color-dha-mc-alert: #EB941D;
58
- --color-dha-mc-alert-border: #CB811B;
59
- --color-dha-mc-required-field: #D91D1D;
60
- --color-dha-mc-primary-text: #484848;
61
- --color-dha-mc-field-border: #707070;
62
- --color-dha-mc-checkbox-inactive: #949494;
63
- --color-dha-mc-secondary-border: #C6C6C6;
64
- --color-dha-mc-inactive-nav-icon-fill: #F0EEEC;
65
- --color-dha-mc-bottom-nav-background: #F9F9F9;
66
- --color-dha-mc-white-main: #FFFFFF;
67
-
68
- /* ─── Semantic palette (HSL channels carried over) ─── */
69
- --color-border: hsl(var(--border));
70
- --color-input: hsl(var(--input));
71
- --color-ring: hsl(var(--ring));
72
- --color-background: hsl(var(--background));
73
- --color-foreground: hsl(var(--foreground));
74
-
75
- --color-primary: hsl(var(--primary));
76
- --color-primary-foreground: hsl(var(--primary-foreground));
77
-
78
- --color-secondary: hsl(var(--secondary));
79
- --color-secondary-foreground: hsl(var(--secondary-foreground));
80
-
81
- --color-destructive: hsl(var(--destructive));
82
- --color-destructive-foreground: hsl(var(--destructive-foreground));
83
-
84
- --color-muted: hsl(var(--muted));
85
- --color-muted-foreground: hsl(var(--muted-foreground));
86
-
87
- --color-accent: hsl(var(--accent));
88
- --color-accent-foreground: hsl(var(--accent-foreground));
89
-
90
- --color-popover: hsl(var(--popover));
91
- --color-popover-foreground: hsl(var(--popover-foreground));
92
-
93
- --color-card: hsl(var(--card));
94
- --color-card-foreground: hsl(var(--card-foreground));
95
-
96
- /* ─── Border-radius utilities ─── */
97
- --radius-lg: var(--radius); /* → rounded-lg */
98
- --radius-md: calc(var(--radius) - 2px); /* → rounded-md */
99
- --radius-sm: calc(var(--radius) - 4px); /* → rounded-sm */
100
- }
101
-
102
- /*
103
- * 3. Global CSS variables (unchanged from v3 file)
104
- * These feed the semantic HSL tokens above.
105
- */
106
- @layer base {
107
- :root {
108
- --background: 0 0% 100%;
109
- --foreground: 222.2 84% 4.9%;
110
-
111
- --card: 0 0% 100%;
112
- --card-foreground: 222.2 84% 4.9%;
113
-
114
- --popover: 0 0% 100%;
115
- --popover-foreground: 222.2 84% 4.9%;
116
-
117
- --primary: 166 91% 33%;
118
- --primary-foreground: 163 100% 92%;
119
-
120
- --secondary: 210 40% 96.1%;
121
- --secondary-foreground: 222.2 47.4% 11.2%;
122
-
123
- --muted: 210 40% 96.1%;
124
- --muted-foreground: 215.4 16.3% 46.9%;
125
-
126
- --accent: 210 40% 96.1%;
127
- --accent-foreground: 222.2 47.4% 11.2%;
128
-
129
- --destructive: 0 84.2% 60.2%;
130
- --destructive-foreground: 210 40% 98%;
131
-
132
- --border: 214.3 31.8% 91.4%;
133
- --input: 214.3 31.8% 91.4%;
134
- --ring: 222.2 84% 4.9%;
135
-
136
- --radius: 0.5rem;
137
- }
138
-
139
- .dark {
140
- --background: 222.2 84% 4.9%;
141
- --foreground: 210 40% 98%;
142
-
143
- --card: 222.2 84% 4.9%;
144
- --card-foreground: 210 40% 98%;
145
-
146
- --popover: 222.2 84% 4.9%;
147
- --popover-foreground: 210 40% 98%;
148
-
149
- --primary: 210 40% 98%;
150
- --primary-foreground: 222.2 47.4% 11.2%;
151
-
152
- --secondary: 217.2 32.6% 17.5%;
153
- --secondary-foreground: 210 40% 98%;
154
-
155
- --muted: 217.2 32.6% 17.5%;
156
- --muted-foreground: 215 20.2% 65.1%;
157
-
158
- --accent: 217.2 32.6% 17.5%;
159
- --accent-foreground: 210 40% 98%;
160
-
161
- --destructive: 0 62.8% 30.6%;
162
- --destructive-foreground: 210 40% 98%;
163
-
164
- --border: 217.2 32.6% 17.5%;
165
- --input: 217.2 32.6% 17.5%;
166
- --ring: 212.7 26.8% 83.9%;
167
- }
168
-
169
- /* Give every element a logical border color */
170
- * { @apply border-border; }
171
- body { @apply bg-background text-foreground; }
172
- }
173
-
174
- /*
175
- * 4. Custom animations (formerly done via tailwindcss-animate + keyframes extension)
176
- * These stay exactly the same; Tailwind will pick them up automatically.
177
- */
178
- @layer utilities {
179
- @keyframes accordion-down {
180
- from { height: 0; }
181
- to { height: var(--radix-accordion-content-height); }
182
- }
183
- @keyframes accordion-up {
184
- from { height: var(--radix-accordion-content-height); }
185
- to { height: 0; }
186
- }
187
-
188
- .animate-accordion-down { animation: accordion-down 0.2s ease-out both; }
189
- .animate-accordion-up { animation: accordion-up 0.2s ease-out both; }
190
- }
package/tsconfig.json DELETED
@@ -1,25 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "jsx": "react-jsx",
4
- "allowJs": false,
5
- "esModuleInterop": false,
6
- "allowSyntheticDefaultImports": true,
7
- "strict": true,
8
- "types": ["vite/client", "vitest", "vitest-axe"]
9
- },
10
- "files": [],
11
- "include": ["src/global.d.ts", "src/**/*"],
12
- "exclude": ["node_modules/@types/jest"],
13
- "references": [
14
- {
15
- "path": "./tsconfig.lib.json"
16
- },
17
- {
18
- "path": "./tsconfig.storybook.json"
19
- },
20
- {
21
- "path": "./tsconfig.spec.json"
22
- }
23
- ],
24
- "extends": "../../tsconfig.base.json"
25
- }
package/tsconfig.lib.json DELETED
@@ -1,42 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "compilerOptions": {
4
- "outDir": "../../dist/out-tsc",
5
- "composite": true,
6
- "declaration": true,
7
- "emitDeclarationOnly": true,
8
- "declarationDir": "./dist",
9
- "types": [
10
- "node",
11
- "@nx/react/typings/cssmodule.d.ts",
12
- "@nx/react/typings/image.d.ts",
13
- "vite/client"
14
- ]
15
- },
16
- "exclude": [
17
- "**/*.spec.ts",
18
- "**/*.test.ts",
19
- "**/*.spec.tsx",
20
- "**/*.test.tsx",
21
- "**/*.spec.js",
22
- "**/*.test.js",
23
- "**/*.spec.jsx",
24
- "**/*.test.jsx",
25
- "**/*.stories.ts",
26
- "**/*.stories.js",
27
- "**/*.stories.jsx",
28
- "**/*.stories.tsx",
29
- "../utils/src/lib/safelist.css",
30
- "../utils/src/lib/utils.spec.tsx"
31
- ],
32
- "include": [
33
- "../utils/src/**/*",
34
- "src/**/*.js",
35
- "src/**/*.jsx",
36
- "src/**/*.ts",
37
- "src/**/*.tsx",
38
- "src/*.ts",
39
- "src/*.tsx"
40
- ],
41
-
42
- }
@@ -1,29 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "compilerOptions": {
4
- "outDir": "../../dist/out-tsc",
5
- "composite": true,
6
- "declaration": true,
7
- "types": [
8
- "vitest/globals",
9
- "vitest/importMeta",
10
- "vite/client",
11
- "node",
12
- "vitest"
13
- ]
14
- },
15
- "include": [
16
- "vite.config.mts",
17
- "vitest.config.ts",
18
- "src/**/*.test.ts",
19
- "src/**/*.spec.ts",
20
- "src/**/*.test.tsx",
21
- "src/**/*.spec.tsx",
22
- "src/**/*.test.js",
23
- "src/**/*.spec.js",
24
- "src/**/*.test.jsx",
25
- "src/**/*.spec.jsx",
26
- "src/**/*.d.ts",
27
- "src/**/*.tsx"
28
- ]
29
- }
@@ -1,36 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "compilerOptions": {
4
- "emitDecoratorMetadata": true,
5
- "composite": true,
6
- "declaration": true,
7
- "outDir": ""
8
- },
9
- "files": [
10
- "../safelist-css/src/index.ts",
11
- "../../node_modules/@nx/react/typings/styled-jsx.d.ts",
12
- "../../node_modules/@nx/react/typings/cssmodule.d.ts",
13
- "../../node_modules/@nx/react/typings/image.d.ts"
14
- ],
15
- "exclude": [
16
- "src/**/*.spec.ts",
17
- "src/**/*.test.ts",
18
- "src/**/*.spec.js",
19
- "src/**/*.test.js",
20
- "src/**/*.spec.tsx",
21
- "src/**/*.test.tsx",
22
- "src/**/*.spec.jsx",
23
- "src/**/*.test.js"
24
- ],
25
- "include": [
26
- "@dhasdk/safelist-css",
27
- "src/**/*.stories.ts",
28
- "src/**/*.stories.js",
29
- "src/**/*.stories.jsx",
30
- "src/**/*.stories.tsx",
31
- "src/**/*.stories.mdx",
32
- "src/**/*.tsx",
33
- ".storybook/*.js",
34
- ".storybook/*.ts"
35
- ]
36
- }
package/vite.config.mts DELETED
@@ -1,87 +0,0 @@
1
- import { defineConfig } from 'vitest/config';
2
- import react from '@vitejs/plugin-react';
3
- import dts from 'vite-plugin-dts';
4
- import * as path from 'path';
5
- import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
6
- import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
7
- import tailwindcss from '@tailwindcss/vite';
8
- // import svgr from 'vite-plugin-svgr';
9
-
10
- export default defineConfig({
11
- test: {
12
- watch: false,
13
- globals: true,
14
- environment: 'jsdom',
15
- setupFiles: './vitest.setup.ts',
16
- include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
17
-
18
- reporters: ['default'],
19
- coverage: {
20
- reportsDirectory: '../../coverage/libs/simple-ui',
21
- provider: 'v8', // v8 or istanbul, both coverage packages installed globally
22
- exclude: [
23
- '**/*.stories.tsx',
24
- '**/*.stories.tsx', '*.config.js',
25
- 'coverage/**',
26
- 'coverage/*.*',
27
- '.storybook/*.ts',
28
- '../.storybook/*.ts',
29
- 'src/index.ts',
30
- 'src/lib/SearchContent.tsx',
31
- ]
32
- },
33
- },
34
- root: __dirname,
35
- cacheDir: '../../node_modules/.vite/libs/simple-ui',
36
-
37
- plugins: [
38
- react(),
39
- tailwindcss(),
40
- nxViteTsPaths(),
41
- nxCopyAssetsPlugin(['*.md']),
42
- dts({
43
- entryRoot: 'src',
44
- tsconfigPath: path.join(__dirname, 'tsconfig.lib.json'),
45
- }),
46
- ],
47
-
48
- resolve: {
49
- alias: {
50
- // + /GuidedMeditation/SomeFile.tsx
51
- '@/simple-ui': path.resolve(__dirname, 'libs/simple-ui'),
52
- // "@/assets/audio/GuidedMeditation": path.resolve(__dirname, "src/GuidedMeditation/assets/audio"),
53
- // "@/modules": path.resolve(__dirname, "libs/guided-meditation/src"),
54
- },
55
- },
56
-
57
- // Uncomment this if you are using workers.
58
- // worker: {
59
- // plugins: [ nxViteTsPaths() ],
60
- // },
61
-
62
- // Configuration for building your library.
63
- // See: https://vitejs.dev/guide/build.html#library-mode
64
- build: {
65
- outDir: '../../dist/libs/simple-ui',
66
- emptyOutDir: true,
67
- reportCompressedSize: true,
68
- commonjsOptions: {
69
- transformMixedEsModules: true,
70
- },
71
- lib: {
72
- // Could also be a dictionary or array of multiple entry points.
73
- entry: 'src/index.ts',
74
- name: 'simple-ui',
75
- fileName: 'index',
76
- // Change this to the formats you want to support.
77
- // Don't forget to update your package.json as well.
78
- formats: ['es', 'cjs'],
79
- },
80
- rollupOptions: {
81
- // External packages that should not be bundled into your library.
82
- external: ['react', 'react-dom', 'react-router-dom', 'react/jsx-runtime'],
83
- },
84
- // sourcemap: true, // enable source map for unit test coverage
85
- // update re sourcemap - apparently not needed? run unit tests from source directory, not repo root
86
- },
87
- });
package/vitest.setup.ts DELETED
@@ -1,12 +0,0 @@
1
- // vitest.setup.ts
2
- import '@testing-library/jest-dom';
3
- import "vitest-axe/extend-expect";
4
- import * as matchers from "vitest-axe/matchers";
5
- import { expect } from "vitest";
6
- import { vi } from 'vitest'; // imported as bandaid for Canvas testing problem
7
-
8
-
9
- expect.extend(matchers);
10
-
11
- HTMLCanvasElement.prototype.getContext = vi.fn(() => null); // executred as bandaid for Canvas testing problem
12
-