@health-samurai/react-components 0.0.0-alpha.17 → 0.0.0-alpha.18

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.
package/README.md CHANGED
@@ -1 +1,102 @@
1
- # Health Samurai React components
1
+ <p align="center">
2
+ <img src="../../.github/logo.svg" width="64" height="64" alt="Health Samurai">
3
+ </p>
4
+
5
+ <h1 align="center">@health-samurai/react-components</h1>
6
+
7
+ <p align="center">
8
+ A React component library for healthcare UIs.<br>
9
+ Looks good out of the box, flexible enough for real-world applications.
10
+ </p>
11
+
12
+ <p align="center">
13
+ <a href="https://www.npmjs.com/package/@health-samurai/react-components"><img src="https://img.shields.io/npm/v/@health-samurai/react-components/alpha" alt="npm"></a>
14
+ <a href="https://healthsamurai.github.io/aidbox-ts-sdk/react-components/"><img src="https://img.shields.io/badge/storybook-react--components-ff4785" alt="Storybook"></a>
15
+ </p>
16
+
17
+ Built on React 19, Radix UI, and Tailwind CSS 4.
18
+ Dark mode support and a design token system are included.
19
+
20
+ ## How to use
21
+
22
+ ```bash
23
+ pnpm add @health-samurai/react-components
24
+ ```
25
+
26
+ Requires `react` and `react-dom` 19+.
27
+
28
+ Import the styles — without this, components will render unstyled:
29
+
30
+ ```typescript
31
+ import "@health-samurai/react-components/full.css";
32
+ ```
33
+
34
+ Add the fonts to the `<head>` of the page:
35
+
36
+ ```html
37
+ <link href="https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&display=swap" rel="stylesheet">
38
+ ```
39
+
40
+ ## 60+ components
41
+
42
+ The library ships with a full set of UI primitives (based on [shadcn/ui](https://ui.shadcn.com/)) alongside custom components built specifically for healthcare developer tooling.
43
+
44
+ **UI Primitives** — Buttons, dialogs, forms, menus, popovers, tables, tabs, tooltips, and more.
45
+ Based on [Radix UI](https://www.radix-ui.com/) for accessibility, styled with Tailwind.
46
+ The full set is available in [Storybook](https://healthsamurai.github.io/aidbox-ts-sdk/react-components/).
47
+
48
+ **Healthcare & Developer Tools:**
49
+
50
+ | Component | Description |
51
+ |-----------|-------------|
52
+ | `CodeEditor` | CodeMirror 6-based editor with syntax highlighting for JSON, YAML, SQL, and HTTP |
53
+ | `DataTable` | TanStack Table wrapper with sticky headers, column resizing, and sorting |
54
+ | `FhirStructureView` | Tree view for displaying FHIR resource structure definitions |
55
+ | `OperationOutcomeView` | Renders FHIR OperationOutcome issues with severity indicators |
56
+ | `SegmentControl` | Multi-option selector (auto-switches to toggle for 2 items) |
57
+ | `SplitButton` | Button with a dropdown for secondary actions |
58
+ | `RequestLineEditor` | HTTP method + URL editor for API tools |
59
+ | `TreeView` | General-purpose hierarchical data display |
60
+
61
+ ## Design tokens
62
+
63
+ A token system defined as CSS custom properties:
64
+
65
+ - **Colors** — Neutral, brand, semantic, and status palettes with light/dark variants (OKLch-based)
66
+ - **Typography** — Inter (sans) and JetBrains Mono (mono), with a size scale from `xxs` to `9xl`
67
+ - **Spacing** — 8px base unit with quarter, half, and multiplied variants
68
+ - **Radii** — `xs` through `max` for consistent rounding
69
+
70
+ ## Storybook
71
+
72
+ All components and their variants are available in [Storybook](https://healthsamurai.github.io/aidbox-ts-sdk/react-components/).
73
+
74
+ To run locally:
75
+
76
+ ```bash
77
+ pnpm storybook
78
+ ```
79
+
80
+ ## Development
81
+
82
+ The package lives in the `aidbox-ts-sdk` monorepo and is built with SWC + TypeScript + Tailwind CSS.
83
+
84
+ ```bash
85
+ git clone git@github.com:HealthSamurai/aidbox-ts-sdk.git
86
+ cd aidbox-ts-sdk
87
+ pnpm install
88
+ cd packages/react-components
89
+ pnpm build # Build the library
90
+ pnpm storybook # Start Storybook on port 6006
91
+ pnpm tsc:check # Type-check
92
+ pnpm lint:fix # Lint and format with Biome
93
+ ```
94
+
95
+ ### Linking for local development
96
+
97
+ To use a local build of the library in another project:
98
+
99
+ ```bash
100
+ cd aidbox-ts-sdk && pnpm link
101
+ cd <your-project> && pnpm link @health-samurai/react-components
102
+ ```
package/dist/bundle.css CHANGED
@@ -1,4 +1,4 @@
1
- /*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
1
+ /*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
2
2
  @layer properties;
3
3
  @layer theme, base, components, utilities;
4
4
  @layer theme {
@@ -301,6 +301,9 @@
301
301
  ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
302
302
  padding-block: 0;
303
303
  }
304
+ ::-webkit-calendar-picker-indicator {
305
+ line-height: 1;
306
+ }
304
307
  :-moz-ui-invalid {
305
308
  box-shadow: none;
306
309
  }
@@ -338,7 +341,7 @@
338
341
  padding: 0;
339
342
  margin: -1px;
340
343
  overflow: hidden;
341
- clip: rect(0, 0, 0, 0);
344
+ clip-path: inset(50%);
342
345
  white-space: nowrap;
343
346
  border-width: 0;
344
347
  }
@@ -366,6 +369,12 @@
366
369
  .inset-y-0 {
367
370
  inset-block: calc(var(--spacing) * 0);
368
371
  }
372
+ .start {
373
+ inset-inline-start: var(--spacing);
374
+ }
375
+ .end {
376
+ inset-inline-end: var(--spacing);
377
+ }
369
378
  .-top-12 {
370
379
  top: calc(var(--spacing) * -12);
371
380
  }
@@ -376,7 +385,7 @@
376
385
  top: calc(var(--spacing) * 1.5);
377
386
  }
378
387
  .top-1\/2 {
379
- top: calc(1/2 * 100%);
388
+ top: calc(1 / 2 * 100%);
380
389
  }
381
390
  .top-3\.5 {
382
391
  top: calc(var(--spacing) * 3.5);
@@ -433,7 +442,7 @@
433
442
  left: calc(var(--spacing) * 0);
434
443
  }
435
444
  .left-1\/2 {
436
- left: calc(1/2 * 100%);
445
+ left: calc(1 / 2 * 100%);
437
446
  }
438
447
  .left-2 {
439
448
  left: calc(var(--spacing) * 2);
@@ -862,7 +871,7 @@
862
871
  width: calc(var(--spacing) * 3);
863
872
  }
864
873
  .w-3\/4 {
865
- width: calc(3/4 * 100%);
874
+ width: calc(3 / 4 * 100%);
866
875
  }
867
876
  .w-4 {
868
877
  width: calc(var(--spacing) * 4);
@@ -1110,7 +1119,7 @@
1110
1119
  transform-origin: var(--radix-tooltip-content-transform-origin);
1111
1120
  }
1112
1121
  .-translate-x-1\/2 {
1113
- --tw-translate-x: calc(calc(1/2 * 100%) * -1);
1122
+ --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
1114
1123
  translate: var(--tw-translate-x) var(--tw-translate-y);
1115
1124
  }
1116
1125
  .-translate-x-px {
@@ -1126,7 +1135,7 @@
1126
1135
  translate: var(--tw-translate-x) var(--tw-translate-y);
1127
1136
  }
1128
1137
  .-translate-y-1\/2 {
1129
- --tw-translate-y: calc(calc(1/2 * 100%) * -1);
1138
+ --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
1130
1139
  translate: var(--tw-translate-x) var(--tw-translate-y);
1131
1140
  }
1132
1141
  .translate-y-\[-50\%\] {
@@ -2191,7 +2200,7 @@
2191
2200
  outline-width: 1px;
2192
2201
  }
2193
2202
  .transition {
2194
- transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;
2203
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
2195
2204
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2196
2205
  transition-duration: var(--tw-duration, var(--default-transition-duration));
2197
2206
  }
@@ -2813,7 +2822,7 @@
2813
2822
  .after\:left-1\/2 {
2814
2823
  &::after {
2815
2824
  content: var(--tw-content);
2816
- left: calc(1/2 * 100%);
2825
+ left: calc(1 / 2 * 100%);
2817
2826
  }
2818
2827
  }
2819
2828
  .after\:w-1 {
@@ -2831,7 +2840,7 @@
2831
2840
  .after\:-translate-x-1\/2 {
2832
2841
  &::after {
2833
2842
  content: var(--tw-content);
2834
- --tw-translate-x: calc(calc(1/2 * 100%) * -1);
2843
+ --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
2835
2844
  translate: var(--tw-translate-x) var(--tw-translate-y);
2836
2845
  }
2837
2846
  }
@@ -3962,7 +3971,7 @@
3962
3971
  &[data-panel-group-direction="vertical"] {
3963
3972
  &::after {
3964
3973
  content: var(--tw-content);
3965
- --tw-translate-y: calc(calc(1/2 * 100%) * -1);
3974
+ --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
3966
3975
  translate: var(--tw-translate-x) var(--tw-translate-y);
3967
3976
  }
3968
3977
  }
@@ -5164,7 +5173,7 @@
5164
5173
  }
5165
5174
  .data-\[vaul-drawer-direction\=left\]\:w-3\/4 {
5166
5175
  &[data-vaul-drawer-direction="left"] {
5167
- width: calc(3/4 * 100%);
5176
+ width: calc(3 / 4 * 100%);
5168
5177
  }
5169
5178
  }
5170
5179
  .data-\[vaul-drawer-direction\=left\]\:border-r {
@@ -5190,7 +5199,7 @@
5190
5199
  }
5191
5200
  .data-\[vaul-drawer-direction\=right\]\:w-3\/4 {
5192
5201
  &[data-vaul-drawer-direction="right"] {
5193
- width: calc(3/4 * 100%);
5202
+ width: calc(3 / 4 * 100%);
5194
5203
  }
5195
5204
  }
5196
5205
  .data-\[vaul-drawer-direction\=right\]\:border-l {
@@ -6243,6 +6252,11 @@
6243
6252
  inherits: false;
6244
6253
  initial-value: 1;
6245
6254
  }
6255
+ @property --tw-enter-blur {
6256
+ syntax: "*";
6257
+ inherits: false;
6258
+ initial-value: 0;
6259
+ }
6246
6260
  @property --tw-enter-opacity {
6247
6261
  syntax: "*";
6248
6262
  inherits: false;
@@ -6268,6 +6282,11 @@
6268
6282
  inherits: false;
6269
6283
  initial-value: 0;
6270
6284
  }
6285
+ @property --tw-exit-blur {
6286
+ syntax: "*";
6287
+ inherits: false;
6288
+ initial-value: 0;
6289
+ }
6271
6290
  @property --tw-exit-opacity {
6272
6291
  syntax: "*";
6273
6292
  inherits: false;
@@ -7053,12 +7072,14 @@ body ::-webkit-scrollbar-thumb:hover {
7053
7072
  from {
7054
7073
  opacity: var(--tw-enter-opacity,1);
7055
7074
  transform: translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));
7075
+ filter: blur(var(--tw-enter-blur,0));
7056
7076
  }
7057
7077
  }
7058
7078
  @keyframes exit {
7059
7079
  to {
7060
7080
  opacity: var(--tw-exit-opacity,1);
7061
7081
  transform: translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));
7082
+ filter: blur(var(--tw-exit-blur,0));
7062
7083
  }
7063
7084
  }
7064
7085
  @keyframes accordion-down {
@@ -7066,12 +7087,12 @@ body ::-webkit-scrollbar-thumb:hover {
7066
7087
  height: 0;
7067
7088
  }
7068
7089
  to {
7069
- height: var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,auto))));
7090
+ height: var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,var(--ngp-accordion-content-height,auto)))));
7070
7091
  }
7071
7092
  }
7072
7093
  @keyframes accordion-up {
7073
7094
  from {
7074
- height: var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,auto))));
7095
+ height: var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,var(--ngp-accordion-content-height,auto)))));
7075
7096
  }
7076
7097
  to {
7077
7098
  height: 0;
@@ -7158,11 +7179,13 @@ body ::-webkit-scrollbar-thumb:hover {
7158
7179
  --tw-animation-duration: initial;
7159
7180
  --tw-animation-fill-mode: none;
7160
7181
  --tw-animation-iteration-count: 1;
7182
+ --tw-enter-blur: 0;
7161
7183
  --tw-enter-opacity: 1;
7162
7184
  --tw-enter-rotate: 0;
7163
7185
  --tw-enter-scale: 1;
7164
7186
  --tw-enter-translate-x: 0;
7165
7187
  --tw-enter-translate-y: 0;
7188
+ --tw-exit-blur: 0;
7166
7189
  --tw-exit-opacity: 1;
7167
7190
  --tw-exit-rotate: 0;
7168
7191
  --tw-exit-scale: 1;
@@ -1,5 +1,5 @@
1
- // biome-ignore-all lint/a11y/useValidAnchor: Useless in stories
2
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ // biome-ignore-all lint/a11y/useValidAnchor: Useless in stories
3
3
  import { Controls, Primary, Title } from "@storybook/addon-docs/blocks";
4
4
  import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "./breadcrumb.js";
5
5
  import { DropdownMenuItem } from "./dropdown-menu.js";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/shadcn/components/ui/breadcrumb.stories.tsx"],"sourcesContent":["// biome-ignore-all lint/a11y/useValidAnchor: Useless in stories\nimport { Controls, Primary, Title } from \"@storybook/addon-docs/blocks\";\nimport type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport {\n\tBreadcrumb,\n\tBreadcrumbItem,\n\tBreadcrumbLink,\n\tBreadcrumbList,\n\tBreadcrumbPage,\n\tBreadcrumbSeparator,\n} from \"#shadcn/components/ui/breadcrumb\";\nimport { DropdownMenuItem } from \"#shadcn/components/ui/dropdown-menu\";\n\ninterface BreadcrumbWrapperProps {\n\tisWhite?: boolean;\n\thasDropdown?: boolean;\n}\n\nfunction BreadcrumbWrapper({\n\tisWhite = false,\n\thasDropdown = false,\n}: BreadcrumbWrapperProps) {\n\treturn (\n\t\t<div className={isWhite ? \"bg-black p-8 rounded-lg\" : \"\"}>\n\t\t\t<Breadcrumb isWhite={isWhite}>\n\t\t\t\t<BreadcrumbList>\n\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbLink asChild>\n\t\t\t\t\t\t\t<a href=\"/\">Home</a>\n\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbLink\n\t\t\t\t\t\t\tasChild\n\t\t\t\t\t\t\tdropdownContent={\n\t\t\t\t\t\t\t\thasDropdown ? (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuItem>Level 1</DropdownMenuItem>\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuItem>Level 2</DropdownMenuItem>\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuItem>Level 3</DropdownMenuItem>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) : undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<a href=\"/docs\">Documentation</a>\n\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbPage>Components</BreadcrumbPage>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t</BreadcrumbList>\n\t\t\t</Breadcrumb>\n\t\t</div>\n\t);\n}\n\nconst meta = {\n\ttitle: \"Component/Breadcrumb\",\n\tcomponent: BreadcrumbWrapper,\n\tparameters: {\n\t\tdocs: {\n\t\t\tpage: () => (\n\t\t\t\t<>\n\t\t\t\t\t<Title />\n\t\t\t\t\t<Primary />\n\t\t\t\t\t<Controls />\n\t\t\t\t</>\n\t\t\t),\n\t\t},\n\t},\n\targTypes: {\n\t\tisWhite: {\n\t\t\tcontrol: \"boolean\",\n\t\t},\n\t\thasDropdown: {\n\t\t\tcontrol: \"boolean\",\n\t\t},\n\t},\n\targs: {\n\t\tisWhite: false,\n\t\thasDropdown: false,\n\t},\n} satisfies Meta<typeof BreadcrumbWrapper>;\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const Default = {\n\ttags: [\"!dev\"],\n\trender: ({ isWhite = false, hasDropdown = false }) => (\n\t\t<BreadcrumbWrapper isWhite={isWhite} hasDropdown={hasDropdown} />\n\t),\n} satisfies Story;\n\nexport const Demo = {\n\ttags: [\"!autodocs\"],\n\trender: () => (\n\t\t<div className=\"space-y-8\">\n\t\t\t<div>\n\t\t\t\t<p className=\"text-sm text-text-secondary mb-2\">Default</p>\n\t\t\t\t<Breadcrumb>\n\t\t\t\t\t<BreadcrumbList>\n\t\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t\t<BreadcrumbLink asChild>\n\t\t\t\t\t\t\t\t<a href=\"/\">Home</a>\n\t\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t\t<BreadcrumbLink asChild>\n\t\t\t\t\t\t\t\t<a href=\"/docs\">Documentation</a>\n\t\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t\t<BreadcrumbPage>Components</BreadcrumbPage>\n\t\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t</BreadcrumbList>\n\t\t\t\t</Breadcrumb>\n\t\t\t</div>\n\n\t\t\t<div>\n\t\t\t\t<p className=\"text-sm text-text-secondary mb-2\">With Dropdown</p>\n\t\t\t\t<Breadcrumb>\n\t\t\t\t\t<BreadcrumbList>\n\t\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t\t<BreadcrumbLink asChild>\n\t\t\t\t\t\t\t\t<a href=\"/\">Home</a>\n\t\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t\t<BreadcrumbLink\n\t\t\t\t\t\t\t\tasChild\n\t\t\t\t\t\t\t\tdropdownContent={\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuItem>Level 1</DropdownMenuItem>\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuItem>Level 2</DropdownMenuItem>\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuItem>Level 3</DropdownMenuItem>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<a href=\"/docs\">Documentation</a>\n\t\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t\t<BreadcrumbPage>Components</BreadcrumbPage>\n\t\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t</BreadcrumbList>\n\t\t\t\t</Breadcrumb>\n\t\t\t</div>\n\n\t\t\t<div className=\"bg-black p-8 rounded-lg\">\n\t\t\t\t<p className=\"text-sm text-white/70 mb-2\">\n\t\t\t\t\tWhite (for dark backgrounds)\n\t\t\t\t</p>\n\t\t\t\t<Breadcrumb isWhite>\n\t\t\t\t\t<BreadcrumbList>\n\t\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t\t<BreadcrumbLink asChild>\n\t\t\t\t\t\t\t\t<a href=\"/\">Home</a>\n\t\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t\t<BreadcrumbLink asChild>\n\t\t\t\t\t\t\t\t<a href=\"/docs\">Documentation</a>\n\t\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t\t<BreadcrumbPage>Components</BreadcrumbPage>\n\t\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t</BreadcrumbList>\n\t\t\t\t</Breadcrumb>\n\t\t\t</div>\n\t\t</div>\n\t),\n} satisfies Story;\n"],"names":["Controls","Primary","Title","Breadcrumb","BreadcrumbItem","BreadcrumbLink","BreadcrumbList","BreadcrumbPage","BreadcrumbSeparator","DropdownMenuItem","BreadcrumbWrapper","isWhite","hasDropdown","div","className","asChild","a","href","dropdownContent","undefined","meta","title","component","parameters","docs","page","argTypes","control","args","Default","tags","render","Demo","p"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/shadcn/components/ui/breadcrumb.stories.tsx"],"sourcesContent":["// biome-ignore-all lint/a11y/useValidAnchor: Useless in stories\nimport { Controls, Primary, Title } from \"@storybook/addon-docs/blocks\";\nimport type { Meta, StoryObj } from \"@storybook/react-vite\";\nimport {\n\tBreadcrumb,\n\tBreadcrumbItem,\n\tBreadcrumbLink,\n\tBreadcrumbList,\n\tBreadcrumbPage,\n\tBreadcrumbSeparator,\n} from \"#shadcn/components/ui/breadcrumb\";\nimport { DropdownMenuItem } from \"#shadcn/components/ui/dropdown-menu\";\n\ninterface BreadcrumbWrapperProps {\n\tisWhite?: boolean;\n\thasDropdown?: boolean;\n}\n\nfunction BreadcrumbWrapper({\n\tisWhite = false,\n\thasDropdown = false,\n}: BreadcrumbWrapperProps) {\n\treturn (\n\t\t<div className={isWhite ? \"bg-black p-8 rounded-lg\" : \"\"}>\n\t\t\t<Breadcrumb isWhite={isWhite}>\n\t\t\t\t<BreadcrumbList>\n\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbLink asChild>\n\t\t\t\t\t\t\t<a href=\"/\">Home</a>\n\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbLink\n\t\t\t\t\t\t\tasChild\n\t\t\t\t\t\t\tdropdownContent={\n\t\t\t\t\t\t\t\thasDropdown ? (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuItem>Level 1</DropdownMenuItem>\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuItem>Level 2</DropdownMenuItem>\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuItem>Level 3</DropdownMenuItem>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) : undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<a href=\"/docs\">Documentation</a>\n\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbPage>Components</BreadcrumbPage>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t</BreadcrumbList>\n\t\t\t</Breadcrumb>\n\t\t</div>\n\t);\n}\n\nconst meta = {\n\ttitle: \"Component/Breadcrumb\",\n\tcomponent: BreadcrumbWrapper,\n\tparameters: {\n\t\tdocs: {\n\t\t\tpage: () => (\n\t\t\t\t<>\n\t\t\t\t\t<Title />\n\t\t\t\t\t<Primary />\n\t\t\t\t\t<Controls />\n\t\t\t\t</>\n\t\t\t),\n\t\t},\n\t},\n\targTypes: {\n\t\tisWhite: {\n\t\t\tcontrol: \"boolean\",\n\t\t},\n\t\thasDropdown: {\n\t\t\tcontrol: \"boolean\",\n\t\t},\n\t},\n\targs: {\n\t\tisWhite: false,\n\t\thasDropdown: false,\n\t},\n} satisfies Meta<typeof BreadcrumbWrapper>;\nexport default meta;\n\ntype Story = StoryObj<typeof meta>;\n\nexport const Default = {\n\ttags: [\"!dev\"],\n\trender: ({ isWhite = false, hasDropdown = false }) => (\n\t\t<BreadcrumbWrapper isWhite={isWhite} hasDropdown={hasDropdown} />\n\t),\n} satisfies Story;\n\nexport const Demo = {\n\ttags: [\"!autodocs\"],\n\trender: () => (\n\t\t<div className=\"space-y-8\">\n\t\t\t<div>\n\t\t\t\t<p className=\"text-sm text-text-secondary mb-2\">Default</p>\n\t\t\t\t<Breadcrumb>\n\t\t\t\t\t<BreadcrumbList>\n\t\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t\t<BreadcrumbLink asChild>\n\t\t\t\t\t\t\t\t<a href=\"/\">Home</a>\n\t\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t\t<BreadcrumbLink asChild>\n\t\t\t\t\t\t\t\t<a href=\"/docs\">Documentation</a>\n\t\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t\t<BreadcrumbPage>Components</BreadcrumbPage>\n\t\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t</BreadcrumbList>\n\t\t\t\t</Breadcrumb>\n\t\t\t</div>\n\n\t\t\t<div>\n\t\t\t\t<p className=\"text-sm text-text-secondary mb-2\">With Dropdown</p>\n\t\t\t\t<Breadcrumb>\n\t\t\t\t\t<BreadcrumbList>\n\t\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t\t<BreadcrumbLink asChild>\n\t\t\t\t\t\t\t\t<a href=\"/\">Home</a>\n\t\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t\t<BreadcrumbLink\n\t\t\t\t\t\t\t\tasChild\n\t\t\t\t\t\t\t\tdropdownContent={\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuItem>Level 1</DropdownMenuItem>\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuItem>Level 2</DropdownMenuItem>\n\t\t\t\t\t\t\t\t\t\t<DropdownMenuItem>Level 3</DropdownMenuItem>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<a href=\"/docs\">Documentation</a>\n\t\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t\t<BreadcrumbPage>Components</BreadcrumbPage>\n\t\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t</BreadcrumbList>\n\t\t\t\t</Breadcrumb>\n\t\t\t</div>\n\n\t\t\t<div className=\"bg-black p-8 rounded-lg\">\n\t\t\t\t<p className=\"text-sm text-white/70 mb-2\">\n\t\t\t\t\tWhite (for dark backgrounds)\n\t\t\t\t</p>\n\t\t\t\t<Breadcrumb isWhite>\n\t\t\t\t\t<BreadcrumbList>\n\t\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t\t<BreadcrumbLink asChild>\n\t\t\t\t\t\t\t\t<a href=\"/\">Home</a>\n\t\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t\t<BreadcrumbLink asChild>\n\t\t\t\t\t\t\t\t<a href=\"/docs\">Documentation</a>\n\t\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t\t<BreadcrumbPage>Components</BreadcrumbPage>\n\t\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t</BreadcrumbList>\n\t\t\t\t</Breadcrumb>\n\t\t\t</div>\n\t\t</div>\n\t),\n} satisfies Story;\n"],"names":["Controls","Primary","Title","Breadcrumb","BreadcrumbItem","BreadcrumbLink","BreadcrumbList","BreadcrumbPage","BreadcrumbSeparator","DropdownMenuItem","BreadcrumbWrapper","isWhite","hasDropdown","div","className","asChild","a","href","dropdownContent","undefined","meta","title","component","parameters","docs","page","argTypes","control","args","Default","tags","render","Demo","p"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@health-samurai/react-components",
3
- "version": "0.0.0-alpha.17",
3
+ "version": "0.0.0-alpha.18",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist",
@@ -17,48 +17,48 @@
17
17
  "#shadcn/*": "./src/shadcn/*"
18
18
  },
19
19
  "dependencies": {
20
- "@codemirror/autocomplete": "^6.20.0",
21
- "@codemirror/commands": "^6.8.1",
20
+ "@codemirror/autocomplete": "^6.20.1",
21
+ "@codemirror/commands": "^6.10.2",
22
22
  "@codemirror/lang-json": "^6.0.2",
23
- "@codemirror/lang-yaml": "^6.1.2",
24
23
  "@codemirror/lang-sql": "^6.10.0",
25
- "@codemirror/language": "^6.11.3",
26
- "@codemirror/lint": "^6.8.5",
27
- "@codemirror/search": "^6.5.11",
28
- "@codemirror/state": "^6.5.2",
29
- "@codemirror/view": "^6.38.8",
30
- "@headless-tree/core": "^1.4.0",
31
- "@headless-tree/react": "^1.4.0",
32
- "@hookform/resolvers": "^5.2.1",
33
- "@lezer/common": "^1.2.3",
34
- "@lezer/highlight": "^1.2.1",
35
- "@lezer/lr": "^1.4.2",
36
- "@radix-ui/react-accordion": "^1.2.11",
37
- "@radix-ui/react-alert-dialog": "^1.1.14",
38
- "@radix-ui/react-aspect-ratio": "^1.1.7",
39
- "@radix-ui/react-avatar": "^1.1.10",
40
- "@radix-ui/react-checkbox": "^1.3.2",
41
- "@radix-ui/react-collapsible": "^1.1.11",
42
- "@radix-ui/react-context-menu": "^2.2.15",
43
- "@radix-ui/react-dialog": "^1.1.14",
44
- "@radix-ui/react-dropdown-menu": "^2.1.15",
45
- "@radix-ui/react-hover-card": "^1.1.14",
46
- "@radix-ui/react-label": "^2.1.7",
47
- "@radix-ui/react-menubar": "^1.1.15",
48
- "@radix-ui/react-navigation-menu": "^1.2.13",
49
- "@radix-ui/react-popover": "^1.1.14",
50
- "@radix-ui/react-progress": "^1.1.7",
51
- "@radix-ui/react-radio-group": "^1.3.7",
52
- "@radix-ui/react-scroll-area": "^1.2.9",
53
- "@radix-ui/react-select": "^2.2.5",
54
- "@radix-ui/react-separator": "^1.1.7",
55
- "@radix-ui/react-slider": "^1.3.5",
56
- "@radix-ui/react-slot": "^1.2.3",
57
- "@radix-ui/react-switch": "^1.2.5",
58
- "@radix-ui/react-tabs": "^1.1.12",
59
- "@radix-ui/react-toggle": "^1.1.9",
60
- "@radix-ui/react-toggle-group": "^1.1.10",
61
- "@radix-ui/react-tooltip": "^1.2.7",
24
+ "@codemirror/lang-yaml": "^6.1.2",
25
+ "@codemirror/language": "^6.12.2",
26
+ "@codemirror/lint": "^6.9.5",
27
+ "@codemirror/search": "^6.6.0",
28
+ "@codemirror/state": "^6.5.4",
29
+ "@codemirror/view": "^6.39.17",
30
+ "@headless-tree/core": "^1.6.3",
31
+ "@headless-tree/react": "^1.6.3",
32
+ "@hookform/resolvers": "^5.2.2",
33
+ "@lezer/common": "^1.5.1",
34
+ "@lezer/highlight": "^1.2.3",
35
+ "@lezer/lr": "^1.4.8",
36
+ "@radix-ui/react-accordion": "^1.2.12",
37
+ "@radix-ui/react-alert-dialog": "^1.1.15",
38
+ "@radix-ui/react-aspect-ratio": "^1.1.8",
39
+ "@radix-ui/react-avatar": "^1.1.11",
40
+ "@radix-ui/react-checkbox": "^1.3.3",
41
+ "@radix-ui/react-collapsible": "^1.1.12",
42
+ "@radix-ui/react-context-menu": "^2.2.16",
43
+ "@radix-ui/react-dialog": "^1.1.15",
44
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
45
+ "@radix-ui/react-hover-card": "^1.1.15",
46
+ "@radix-ui/react-label": "^2.1.8",
47
+ "@radix-ui/react-menubar": "^1.1.16",
48
+ "@radix-ui/react-navigation-menu": "^1.2.14",
49
+ "@radix-ui/react-popover": "^1.1.15",
50
+ "@radix-ui/react-progress": "^1.1.8",
51
+ "@radix-ui/react-radio-group": "^1.3.8",
52
+ "@radix-ui/react-scroll-area": "^1.2.10",
53
+ "@radix-ui/react-select": "^2.2.6",
54
+ "@radix-ui/react-separator": "^1.1.8",
55
+ "@radix-ui/react-slider": "^1.3.6",
56
+ "@radix-ui/react-slot": "^1.2.4",
57
+ "@radix-ui/react-switch": "^1.2.6",
58
+ "@radix-ui/react-tabs": "^1.1.13",
59
+ "@radix-ui/react-toggle": "^1.1.10",
60
+ "@radix-ui/react-toggle-group": "^1.1.11",
61
+ "@radix-ui/react-tooltip": "^1.2.8",
62
62
  "@tanstack/react-table": "^8.21.3",
63
63
  "class-variance-authority": "^0.7.1",
64
64
  "clsx": "^2.1.1",
@@ -69,46 +69,48 @@
69
69
  "lucide-react": "^0.539.0",
70
70
  "next-themes": "^0.4.6",
71
71
  "radix-ui": "^1.4.3",
72
- "react": "^19.1.0",
73
- "react-day-picker": "^9.8.1",
74
- "react-dom": "^19.1.0",
75
- "react-hook-form": "^7.62.0",
76
- "react-resizable-panels": "^3.0.4",
72
+ "react": "^19.2.4",
73
+ "react-day-picker": "^9.14.0",
74
+ "react-dom": "^19.2.4",
75
+ "react-hook-form": "^7.71.2",
76
+ "react-resizable-panels": "^3.0.6",
77
77
  "recharts": "2.15.4",
78
78
  "sonner": "^2.0.7",
79
- "tailwind-merge": "^3.3.1",
79
+ "tailwind-merge": "^3.5.0",
80
80
  "vaul": "^1.1.2",
81
- "zod": "^4.0.17"
81
+ "zod": "^4.3.6"
82
82
  },
83
83
  "devDependencies": {
84
84
  "@lezer/generator": "^1.8.0",
85
- "@storybook/addon-docs": "^9.1.1",
86
- "@storybook/react-vite": "^9.1.1",
87
- "@swc/cli": "^0.7.8",
88
- "@swc/core": "^1.13.5",
89
- "@tailwindcss/cli": "^4.1.11",
90
- "@tailwindcss/vite": "^4.1.11",
91
- "@types/node": "^24.2.0",
92
- "@types/react": "^19.1.8",
93
- "@types/react-dom": "^19.1.6",
94
- "@vitejs/plugin-react-swc": "^3.10.2",
85
+ "@storybook/addon-docs": "^9.1.20",
86
+ "@storybook/react-vite": "^9.1.20",
87
+ "@swc/cli": "^0.7.10",
88
+ "@swc/core": "^1.15.18",
89
+ "@tailwindcss/cli": "^4.2.1",
90
+ "@tailwindcss/vite": "^4.2.1",
91
+ "@types/node": "^24.12.0",
92
+ "@types/react": "^19.2.14",
93
+ "@types/react-dom": "^19.2.3",
94
+ "@vitejs/plugin-react-swc": "^3.11.0",
95
95
  "chokidar": "^4.0.3",
96
- "storybook": "^9.1.1",
97
- "tailwindcss": "^4.1.11",
98
- "tsx": "^4.20.4",
99
- "tw-animate-css": "^1.3.6",
96
+ "storybook": "^9.1.20",
97
+ "tailwindcss": "^4.2.1",
98
+ "tsx": "^4.21.0",
99
+ "tw-animate-css": "^1.4.0",
100
100
  "typescript": "~5.8.3",
101
- "vite": "^7.0.4",
101
+ "vite": "^7.3.1",
102
102
  "vitest": "^3.2.4",
103
- "@health-samurai/aidbox-fhirpath-lsp": "0.0.0-alpha.6",
104
- "@health-samurai/aidbox-client": "0.0.0-alpha.4"
103
+ "@health-samurai/aidbox-client": "0.0.0-alpha.4",
104
+ "@health-samurai/aidbox-fhirpath-lsp": "0.0.0-alpha.6"
105
105
  },
106
106
  "publishConfig": {
107
107
  "access": "public"
108
108
  },
109
+ "homepage": "https://github.com/HealthSamurai/aidbox-ts-sdk/tree/master/packages/react-components#readme",
109
110
  "repository": {
110
111
  "type": "git",
111
- "url": "https://github.com/HealthSamurai/aidbox-ts-sdk"
112
+ "url": "https://github.com/HealthSamurai/aidbox-ts-sdk",
113
+ "directory": "packages/react-components"
112
114
  },
113
115
  "scripts": {
114
116
  "build": "rm -rf dist && mkdir -p dist && swc src -d dist -D && tsc -b --force && tailwindcss --cwd ./src -i ./full.css -o ../dist/bundle.css && echo success",