laif-ds 0.2.74 → 0.2.76

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 (155) hide show
  1. package/dist/CHANGELOG.md +446 -0
  2. package/dist/agent-docs/adoption-report.json +615 -0
  3. package/dist/agent-docs/components/Accordion.md +46 -16
  4. package/dist/agent-docs/components/Alert.md +90 -95
  5. package/dist/agent-docs/components/AlertDialog.md +132 -126
  6. package/dist/agent-docs/components/AppEditor.md +90 -90
  7. package/dist/agent-docs/components/AppRadioGroup.md +18 -18
  8. package/dist/agent-docs/components/AppSidebar.md +129 -122
  9. package/dist/agent-docs/components/AppStepper.md +81 -77
  10. package/dist/agent-docs/components/AspectRatio.md +70 -62
  11. package/dist/agent-docs/components/AudioVisualizer.md +5 -5
  12. package/dist/agent-docs/components/Avatar.md +112 -113
  13. package/dist/agent-docs/components/Badge.md +123 -118
  14. package/dist/agent-docs/components/Breadcrumb.md +8 -1
  15. package/dist/agent-docs/components/Button.md +131 -129
  16. package/dist/agent-docs/components/Card.md +172 -147
  17. package/dist/agent-docs/components/Carousel.md +148 -129
  18. package/dist/agent-docs/components/Chat.md +121 -109
  19. package/dist/agent-docs/components/ChatMessage.md +72 -61
  20. package/dist/agent-docs/components/Checkbox.md +150 -135
  21. package/dist/agent-docs/components/CircularProgress.md +53 -49
  22. package/dist/agent-docs/components/CodeHighlighter.md +4 -4
  23. package/dist/agent-docs/components/Collapsible.md +114 -95
  24. package/dist/agent-docs/components/Command.md +141 -142
  25. package/dist/agent-docs/components/Confirmer.md +182 -175
  26. package/dist/agent-docs/components/ContextMenu.md +196 -191
  27. package/dist/agent-docs/components/DataCrossTable.md +114 -94
  28. package/dist/agent-docs/components/DataTable.md +32 -24
  29. package/dist/agent-docs/components/Dialog.md +130 -125
  30. package/dist/agent-docs/components/Drawer.md +141 -127
  31. package/dist/agent-docs/components/FilePreviewer.md +138 -139
  32. package/dist/agent-docs/components/FileUploader.md +149 -129
  33. package/dist/agent-docs/components/Form.md +3 -1
  34. package/dist/agent-docs/components/FormComposer.md +163 -137
  35. package/dist/agent-docs/components/GanttChart.md +125 -122
  36. package/dist/agent-docs/components/HoverCard.md +1 -1
  37. package/dist/agent-docs/components/Icon.md +98 -99
  38. package/dist/agent-docs/components/Input.md +173 -138
  39. package/dist/agent-docs/components/InputOtp.md +6 -1
  40. package/dist/agent-docs/components/InputSelector.md +94 -97
  41. package/dist/agent-docs/components/InterruptPrompt.md +4 -4
  42. package/dist/agent-docs/components/MarkdownRenderer.md +5 -2
  43. package/dist/agent-docs/components/Menubar.md +60 -57
  44. package/dist/agent-docs/components/MessageInput.md +134 -131
  45. package/dist/agent-docs/components/MessageList.md +110 -96
  46. package/dist/agent-docs/components/MultipleSelector.md +147 -146
  47. package/dist/agent-docs/components/NavigationMenu.md +6 -2
  48. package/dist/agent-docs/components/Popover.md +112 -103
  49. package/dist/agent-docs/components/PromptSuggestions.md +5 -5
  50. package/dist/agent-docs/components/RadioGroup.md +97 -90
  51. package/dist/agent-docs/components/Resizable.md +4 -1
  52. package/dist/agent-docs/components/ResizePrompt.md +12 -13
  53. package/dist/agent-docs/components/ScrollArea.md +6 -2
  54. package/dist/agent-docs/components/SecurePdfViewer.md +10 -6
  55. package/dist/agent-docs/components/Select.md +131 -132
  56. package/dist/agent-docs/components/Sheet.md +8 -1
  57. package/dist/agent-docs/components/ShikiHighlighter.md +5 -5
  58. package/dist/agent-docs/components/Sidebar.md +94 -85
  59. package/dist/agent-docs/components/Slider.md +62 -58
  60. package/dist/agent-docs/components/Sonner.md +1 -0
  61. package/dist/agent-docs/components/Spinner.md +14 -14
  62. package/dist/agent-docs/components/Stepper.md +93 -67
  63. package/dist/agent-docs/components/Switch.md +41 -42
  64. package/dist/agent-docs/components/TableSkeleton.md +8 -8
  65. package/dist/agent-docs/components/Tabs.md +106 -86
  66. package/dist/agent-docs/components/TextArea.md +51 -52
  67. package/dist/agent-docs/components/ThemeSwitcher.md +72 -69
  68. package/dist/agent-docs/components/Toaster.md +1 -0
  69. package/dist/agent-docs/components/Tooltip.md +102 -91
  70. package/dist/agent-docs/components/Typo.md +68 -65
  71. package/dist/agent-docs/components/WeeklyCalendar.md +63 -64
  72. package/dist/agent-docs/components-list.md +1 -0
  73. package/dist/agent-docs/manifest.json +5981 -0
  74. package/dist/agent-docs/truncated-cell.md +342 -0
  75. package/dist/components/editor/editor-hooks/use-update-toolbar.js +6 -6
  76. package/dist/components/editor/plugins/actions/counter-character-plugin.js +6 -6
  77. package/dist/components/editor/plugins/toolbar/font-format-toolbar-plugin.js +18 -18
  78. package/dist/components/editor/plugins/toolbar/history-toolbar-plugin.js +10 -10
  79. package/dist/components/editor/plugins/toolbar/toolbar-plugin.js +9 -9
  80. package/dist/components/ui/app-checkbox.js +1 -1
  81. package/dist/components/ui/app-dialog.js +70 -64
  82. package/dist/components/ui/app-editor.js +51 -51
  83. package/dist/components/ui/app-form.js +81 -81
  84. package/dist/components/ui/app-multiple-select-dropdown.js +36 -36
  85. package/dist/components/ui/app-select.js +109 -104
  86. package/dist/components/ui/app-sidebar.js +41 -41
  87. package/dist/components/ui/app-stepper.js +1 -1
  88. package/dist/components/ui/app-time-picker.js +18 -18
  89. package/dist/components/ui/app-tooltip.js +1 -1
  90. package/dist/components/ui/async-select.js +5 -5
  91. package/dist/components/ui/audio-visualizer.js +61 -58
  92. package/dist/components/ui/card.js +1 -1
  93. package/dist/components/ui/carousel.js +2 -2
  94. package/dist/components/ui/chart.js +1 -1
  95. package/dist/components/ui/chat-message.js +8 -8
  96. package/dist/components/ui/chat.js +86 -88
  97. package/dist/components/ui/command.js +2 -2
  98. package/dist/components/ui/copy-button.js +4 -4
  99. package/dist/components/ui/date-picker.js +20 -20
  100. package/dist/components/ui/file-preview/index.js +13 -13
  101. package/dist/components/ui/file-previewer.js +12 -11
  102. package/dist/components/ui/file-uploader.js +86 -78
  103. package/dist/components/ui/form.js +2 -2
  104. package/dist/components/ui/gantt/components/Chart/Bars/Bars.js +56 -56
  105. package/dist/components/ui/gantt/components/Chart/Bars/BarsRow/BarItem/BarItem.js +12 -12
  106. package/dist/components/ui/gantt/components/Chart/Bars/BarsRow/BarsItems/BarItems.js +1 -1
  107. package/dist/components/ui/gantt/components/Chart/Bars/BarsRow/BarsRow.js +4 -4
  108. package/dist/components/ui/gantt/components/Chart/Bars/BarsRow/RepeteadBars/RepeteadBars.js +2 -2
  109. package/dist/components/ui/gantt/components/Chart/Chart.js +23 -23
  110. package/dist/components/ui/gantt/components/Chart/Scale/Scale.js +1 -1
  111. package/dist/components/ui/gantt/components/Chart/Tree/Tree.js +34 -34
  112. package/dist/components/ui/gantt/components/Controls/Controls.js +5 -5
  113. package/dist/components/ui/gantt/components/Gantt/Gantt.js +4 -4
  114. package/dist/components/ui/gantt/hooks/useGanttCalculate.js +25 -18
  115. package/dist/components/ui/input-selector.js +1 -1
  116. package/dist/components/ui/input.js +23 -23
  117. package/dist/components/ui/kanban.js +8 -9
  118. package/dist/components/ui/markdown-renderer.js +41 -35
  119. package/dist/components/ui/message-input.js +45 -44
  120. package/dist/components/ui/multiple-selector.js +91 -82
  121. package/dist/components/ui/secure-pdf-viewer.js +19 -7
  122. package/dist/components/ui/sidebar.js +1 -1
  123. package/dist/components/ui/slider.js +1 -1
  124. package/dist/components/ui/spinner.js +4 -4
  125. package/dist/components/ui/stepper.js +157 -138
  126. package/dist/components/ui/tables/data-cross-table/data-cross-table-buttons.js +29 -29
  127. package/dist/components/ui/tables/data-cross-table/data-cross-table.js +258 -246
  128. package/dist/components/ui/tables/data-table/components/data-table-advanced-filter.js +4 -1
  129. package/dist/components/ui/tables/data-table/components/data-table-body.js +211 -367
  130. package/dist/components/ui/tables/data-table/components/data-table-filter-inputs.js +114 -112
  131. package/dist/components/ui/tables/data-table/components/data-table-filters.js +116 -96
  132. package/dist/components/ui/tables/data-table/components/data-table-header.js +211 -0
  133. package/dist/components/ui/tables/data-table/components/data-table-searchbar.js +8 -8
  134. package/dist/components/ui/tables/data-table/components/data-table-skeleton-rows.js +33 -0
  135. package/dist/components/ui/tables/data-table/data-table.js +258 -250
  136. package/dist/components/ui/tables/data-table/data-table.service.js +112 -97
  137. package/dist/components/ui/tables/data-table/data-table.utils.js +25 -15
  138. package/dist/components/ui/textarea.js +2 -2
  139. package/dist/components/ui/theme-switcher.js +1 -1
  140. package/dist/components/ui/toggle-group.js +2 -2
  141. package/dist/components/ui/truncated-cell.js +100 -0
  142. package/dist/components/ui/weekly-calendar/appointment-card.js +16 -16
  143. package/dist/components/ui/weekly-calendar/calendar-context.js +6 -6
  144. package/dist/components/ui/weekly-calendar/calendar-header.js +12 -12
  145. package/dist/components/ui/weekly-calendar/day-column.js +16 -16
  146. package/dist/components/ui/weekly-calendar/time-column.js +4 -4
  147. package/dist/components/ui/weekly-calendar/weekly-calendar.js +4 -4
  148. package/dist/hooks/use-audio-recording.js +1 -1
  149. package/dist/hooks/use-auto-scroll.js +18 -18
  150. package/dist/hooks/use-autosize-textarea.js +12 -13
  151. package/dist/index.d.ts +100 -45
  152. package/dist/index.js +362 -360
  153. package/dist/lib/utils.js +6 -6
  154. package/dist/styles.v3.css +1 -1
  155. package/package.json +14 -4
@@ -1,103 +1,112 @@
1
- # Popover
2
-
3
- ## Overview
4
-
5
- Small floating content panel anchored to a trigger. Useful for lightweight forms, hints, and quick actions.
6
-
7
- ---
8
-
9
- ## Subcomponents & Props
10
-
11
- - **Popover**: Root container. Extends Radix Popover Root props.
12
- - **PopoverTrigger**: The element that opens the popover (often `asChild`).
13
- - **PopoverContent**: Floating panel.
14
- - `align`: `start | center | end` (default `center`)
15
- - `side`: `top | right | bottom | left` (Radix prop)
16
- - `sideOffset`: `number` (default `4`)
17
- - `container`: `HTMLElement | null` (portal target)
18
- - **PopoverAnchor**: Optional explicit anchor element.
19
-
20
- ---
21
-
22
- ## Behavior
23
-
24
- - **Positioning**: Uses Radix positioning with transform-origin aware animations.
25
- - **Focus management**: Traps focus while open, returns focus on close.
26
- - **Accessibility**: Proper aria attributes via Radix; close on outside click/Escape.
27
-
28
- ---
29
-
30
- ## Examples
31
-
32
- ### Basic
33
-
34
- ```tsx
35
- import { Button, Input, Label } from "laif-ds";
36
- import { Popover, PopoverTrigger, PopoverContent } from "laif-ds";
37
-
38
- export function BasicPopover() {
39
- return (
40
- <Popover>
41
- <PopoverTrigger asChild>
42
- <Button variant="outline">Open Popover</Button>
43
- </PopoverTrigger>
44
- <PopoverContent className="w-80">
45
- <div className="grid gap-4">
46
- <div className="space-y-2">
47
- <h4 className="font-medium leading-none">Dimensions</h4>
48
- <p className="text-d-muted-foreground text-sm">Set layer dimensions.</p>
49
- </div>
50
- <div className="grid gap-2">
51
- <div className="grid grid-cols-3 items-center gap-4">
52
- <Label htmlFor="width">Width</Label>
53
- <Input id="width" defaultValue="100%" className="col-span-2 h-8" />
54
- </div>
55
- <div className="grid grid-cols-3 items-center gap-4">
56
- <Label htmlFor="maxWidth">Max. width</Label>
57
- <Input id="maxWidth" defaultValue="300px" className="col-span-2 h-8" />
58
- </div>
59
- </div>
60
- </div>
61
- </PopoverContent>
62
- </Popover>
63
- );
64
- }
65
- ```
66
-
67
- ### Positioned
68
-
69
- ```tsx
70
- import { Button } from "laif-ds";
71
- import { Popover, PopoverTrigger, PopoverContent } from "laif-ds";
72
-
73
- export function PositionedPopovers() {
74
- return (
75
- <div className="flex space-x-4">
76
- <Popover>
77
- <PopoverTrigger asChild>
78
- <Button variant="outline">Top</Button>
79
- </PopoverTrigger>
80
- <PopoverContent side="top" className="w-40">
81
- <p className="text-sm">Appears on top.</p>
82
- </PopoverContent>
83
- </Popover>
84
- <Popover>
85
- <PopoverTrigger asChild>
86
- <Button variant="outline">Right</Button>
87
- </PopoverTrigger>
88
- <PopoverContent side="right" className="w-40">
89
- <p className="text-sm">Appears on the right.</p>
90
- </PopoverContent>
91
- </Popover>
92
- </div>
93
- );
94
- }
95
- ```
96
-
97
- ---
98
-
99
- ## Notes
100
-
101
- - **Portal container**: Use `container` on `PopoverContent` to mount into a specific element.
102
- - **Sizing**: Set width/height via utility classes; content scrolls when needed.
103
-
1
+ # Popover
2
+
3
+ ## Overview
4
+
5
+ Small floating content panel anchored to a trigger. Useful for lightweight forms, hints, and quick actions.
6
+
7
+ ---
8
+
9
+ ## Subcomponents & Props
10
+
11
+ - **Popover**: Root container. Extends Radix Popover Root props.
12
+ - **PopoverTrigger**: The element that opens the popover (often `asChild`).
13
+ - **PopoverContent**: Floating panel.
14
+ - `align`: `start | center | end` (default `center`)
15
+ - `side`: `top | right | bottom | left` (Radix prop)
16
+ - `sideOffset`: `number` (default `4`)
17
+ - `container`: `HTMLElement | null` (portal target)
18
+ - **PopoverAnchor**: Optional explicit anchor element.
19
+
20
+ ---
21
+
22
+ ## Behavior
23
+
24
+ - **Positioning**: Uses Radix positioning with transform-origin aware animations.
25
+ - **Focus management**: Traps focus while open, returns focus on close.
26
+ - **Accessibility**: Proper aria attributes via Radix; close on outside click/Escape.
27
+
28
+ ---
29
+
30
+ ## Examples
31
+
32
+ ### Basic
33
+
34
+ ```tsx
35
+ import { Button, Input, Label } from "laif-ds";
36
+ import { Popover, PopoverTrigger, PopoverContent } from "laif-ds";
37
+
38
+ export function BasicPopover() {
39
+ return (
40
+ <Popover>
41
+ <PopoverTrigger asChild>
42
+ <Button variant="outline">Open Popover</Button>
43
+ </PopoverTrigger>
44
+ <PopoverContent className="w-80">
45
+ <div className="grid gap-4">
46
+ <div className="space-y-2">
47
+ <h4 className="leading-none font-medium">Dimensions</h4>
48
+ <p className="text-d-muted-foreground text-sm">
49
+ Set layer dimensions.
50
+ </p>
51
+ </div>
52
+ <div className="grid gap-2">
53
+ <div className="grid grid-cols-3 items-center gap-4">
54
+ <Label htmlFor="width">Width</Label>
55
+ <Input
56
+ id="width"
57
+ defaultValue="100%"
58
+ className="col-span-2 h-8"
59
+ />
60
+ </div>
61
+ <div className="grid grid-cols-3 items-center gap-4">
62
+ <Label htmlFor="maxWidth">Max. width</Label>
63
+ <Input
64
+ id="maxWidth"
65
+ defaultValue="300px"
66
+ className="col-span-2 h-8"
67
+ />
68
+ </div>
69
+ </div>
70
+ </div>
71
+ </PopoverContent>
72
+ </Popover>
73
+ );
74
+ }
75
+ ```
76
+
77
+ ### Positioned
78
+
79
+ ```tsx
80
+ import { Button } from "laif-ds";
81
+ import { Popover, PopoverTrigger, PopoverContent } from "laif-ds";
82
+
83
+ export function PositionedPopovers() {
84
+ return (
85
+ <div className="flex space-x-4">
86
+ <Popover>
87
+ <PopoverTrigger asChild>
88
+ <Button variant="outline">Top</Button>
89
+ </PopoverTrigger>
90
+ <PopoverContent side="top" className="w-40">
91
+ <p className="text-sm">Appears on top.</p>
92
+ </PopoverContent>
93
+ </Popover>
94
+ <Popover>
95
+ <PopoverTrigger asChild>
96
+ <Button variant="outline">Right</Button>
97
+ </PopoverTrigger>
98
+ <PopoverContent side="right" className="w-40">
99
+ <p className="text-sm">Appears on the right.</p>
100
+ </PopoverContent>
101
+ </Popover>
102
+ </div>
103
+ );
104
+ }
105
+ ```
106
+
107
+ ---
108
+
109
+ ## Notes
110
+
111
+ - **Portal container**: Use `container` on `PopoverContent` to mount into a specific element.
112
+ - **Sizing**: Set width/height via utility classes; content scrolls when needed.
@@ -8,11 +8,11 @@ Clickable suggestion chips that append a user message via provided callback.
8
8
 
9
9
  ## Props
10
10
 
11
- | Prop | Type | Description |
12
- | --- | --- | --- |
13
- | `label` | `string` | Header text |
14
- | `append` | `(message: { role: "user"; content: string }) => void` | Callback invoked when a suggestion is clicked |
15
- | `suggestions` | `string[]` | List of suggestion texts |
11
+ | Prop | Type | Description |
12
+ | ------------- | ------------------------------------------------------ | --------------------------------------------- |
13
+ | `label` | `string` | Header text |
14
+ | `append` | `(message: { role: "user"; content: string }) => void` | Callback invoked when a suggestion is clicked |
15
+ | `suggestions` | `string[]` | List of suggestion texts |
16
16
 
17
17
  ---
18
18
 
@@ -1,90 +1,97 @@
1
- # RadioGroup
2
-
3
- ## Overview
4
-
5
- Set of mutually exclusive options with accessible keyboard navigation. Includes an item component styled for DS tokens.
6
-
7
- ---
8
-
9
- ## Subcomponents & Props
10
-
11
- - **RadioGroup**: Root container (Radix RadioGroup Root props)
12
- - `value`, `defaultValue`: controlled/uncontrolled
13
- - `onValueChange(value: string)`: change handler
14
- - `orientation`: `"horizontal" | "vertical"` (default `"vertical"`)
15
- - `disabled`: `boolean`
16
- - `required`: `boolean`
17
- - `name`: `string`
18
- - **RadioGroupItem**: Individual radio control (Radix Item props)
19
- - `value`: `string`
20
- - `disabled`: `boolean`
21
-
22
- ---
23
-
24
- ## Behavior
25
-
26
- - **Keyboard**: Arrow keys move focus; Space/Enter selects.
27
- - **Validation styles**: `aria-invalid` triggers error ring/border.
28
- - **Accessibility**: Pair with `Label` using `htmlFor` and `id`.
29
-
30
- ---
31
-
32
- ## Examples
33
-
34
- ### Default
35
-
36
- ```tsx
37
- import { useState } from "react";
38
- import { Label, RadioGroup, RadioGroupItem } from "laif-ds";
39
-
40
- export function PlanSelector() {
41
- const [plan, setPlan] = useState("startup");
42
- return (
43
- <RadioGroup value={plan} onValueChange={setPlan} className="space-y-4">
44
- <div className="flex items-start space-x-3">
45
- <RadioGroupItem value="startup" id="startup" className="mt-1" />
46
- <div className="grid gap-1">
47
- <Label htmlFor="startup" className="font-medium">Startup</Label>
48
- <p className="text-d-muted-foreground text-sm">Fino a 10 utenti</p>
49
- </div>
50
- </div>
51
- <div className="flex items-start space-x-3">
52
- <RadioGroupItem value="business" id="business" className="mt-1" />
53
- <div className="grid gap-1">
54
- <Label htmlFor="business" className="font-medium">Business</Label>
55
- <p className="text-d-muted-foreground text-sm">Fino a 100 utenti</p>
56
- </div>
57
- </div>
58
- </RadioGroup>
59
- );
60
- }
61
- ```
62
-
63
- ### Disabled
64
-
65
- ```tsx
66
- import { Label, RadioGroup, RadioGroupItem } from "laif-ds";
67
-
68
- export function DisabledRadios() {
69
- return (
70
- <RadioGroup defaultValue="option1" disabled className="space-y-2">
71
- <div className="flex items-center space-x-2">
72
- <RadioGroupItem value="option1" id="disabled1" />
73
- <Label htmlFor="disabled1" className="text-d-muted-foreground">Opzione 1</Label>
74
- </div>
75
- <div className="flex items-center space-x-2">
76
- <RadioGroupItem value="option2" id="disabled2" />
77
- <Label htmlFor="disabled2" className="text-d-muted-foreground">Opzione 2</Label>
78
- </div>
79
- </RadioGroup>
80
- );
81
- }
82
- ```
83
-
84
- ---
85
-
86
- ## Notes
87
-
88
- - **Deprecated?** In some projects a higher-level `AppRadioGroup` may be preferred. Check your project conventions.
89
- - **A11y**: Always link `Label` to `RadioGroupItem` via `htmlFor`/`id`.
90
-
1
+ # RadioGroup
2
+
3
+ ## Overview
4
+
5
+ Set of mutually exclusive options with accessible keyboard navigation. Includes an item component styled for DS tokens.
6
+
7
+ ---
8
+
9
+ ## Subcomponents & Props
10
+
11
+ - **RadioGroup**: Root container (Radix RadioGroup Root props)
12
+ - `value`, `defaultValue`: controlled/uncontrolled
13
+ - `onValueChange(value: string)`: change handler
14
+ - `orientation`: `"horizontal" | "vertical"` (default `"vertical"`)
15
+ - `disabled`: `boolean`
16
+ - `required`: `boolean`
17
+ - `name`: `string`
18
+ - **RadioGroupItem**: Individual radio control (Radix Item props)
19
+ - `value`: `string`
20
+ - `disabled`: `boolean`
21
+
22
+ ---
23
+
24
+ ## Behavior
25
+
26
+ - **Keyboard**: Arrow keys move focus; Space/Enter selects.
27
+ - **Validation styles**: `aria-invalid` triggers error ring/border.
28
+ - **Accessibility**: Pair with `Label` using `htmlFor` and `id`.
29
+
30
+ ---
31
+
32
+ ## Examples
33
+
34
+ ### Default
35
+
36
+ ```tsx
37
+ import { useState } from "react";
38
+ import { Label, RadioGroup, RadioGroupItem } from "laif-ds";
39
+
40
+ export function PlanSelector() {
41
+ const [plan, setPlan] = useState("startup");
42
+ return (
43
+ <RadioGroup value={plan} onValueChange={setPlan} className="space-y-4">
44
+ <div className="flex items-start space-x-3">
45
+ <RadioGroupItem value="startup" id="startup" className="mt-1" />
46
+ <div className="grid gap-1">
47
+ <Label htmlFor="startup" className="font-medium">
48
+ Startup
49
+ </Label>
50
+ <p className="text-d-muted-foreground text-sm">Fino a 10 utenti</p>
51
+ </div>
52
+ </div>
53
+ <div className="flex items-start space-x-3">
54
+ <RadioGroupItem value="business" id="business" className="mt-1" />
55
+ <div className="grid gap-1">
56
+ <Label htmlFor="business" className="font-medium">
57
+ Business
58
+ </Label>
59
+ <p className="text-d-muted-foreground text-sm">Fino a 100 utenti</p>
60
+ </div>
61
+ </div>
62
+ </RadioGroup>
63
+ );
64
+ }
65
+ ```
66
+
67
+ ### Disabled
68
+
69
+ ```tsx
70
+ import { Label, RadioGroup, RadioGroupItem } from "laif-ds";
71
+
72
+ export function DisabledRadios() {
73
+ return (
74
+ <RadioGroup defaultValue="option1" disabled className="space-y-2">
75
+ <div className="flex items-center space-x-2">
76
+ <RadioGroupItem value="option1" id="disabled1" />
77
+ <Label htmlFor="disabled1" className="text-d-muted-foreground">
78
+ Opzione 1
79
+ </Label>
80
+ </div>
81
+ <div className="flex items-center space-x-2">
82
+ <RadioGroupItem value="option2" id="disabled2" />
83
+ <Label htmlFor="disabled2" className="text-d-muted-foreground">
84
+ Opzione 2
85
+ </Label>
86
+ </div>
87
+ </RadioGroup>
88
+ );
89
+ }
90
+ ```
91
+
92
+ ---
93
+
94
+ ## Notes
95
+
96
+ - **Deprecated?** In some projects a higher-level `AppRadioGroup` may be preferred. Check your project conventions.
97
+ - **A11y**: Always link `Label` to `RadioGroupItem` via `htmlFor`/`id`.
@@ -21,7 +21,10 @@ import { ResizablePanelGroup, ResizablePanel, ResizableHandle } from "laif-ds";
21
21
 
22
22
  export function SplitLayout() {
23
23
  return (
24
- <ResizablePanelGroup direction="horizontal" className="h-64 rounded-md border">
24
+ <ResizablePanelGroup
25
+ direction="horizontal"
26
+ className="h-64 rounded-md border"
27
+ >
25
28
  <ResizablePanel defaultSize={50}>
26
29
  <div className="p-4">Left</div>
27
30
  </ResizablePanel>
@@ -1,13 +1,12 @@
1
- # ResizePrompt
2
-
3
- ## Status
4
-
5
- This component is deprecated and no longer available in the UI library.
6
-
7
- ---
8
-
9
- ## Notes
10
-
11
- - If you need resizable layouts or panels, refer to current layout primitives or container-level CSS techniques used in the design system.
12
- - For responsive behavior, prefer flexbox utilities and app-specific layout components.
13
-
1
+ # ResizePrompt
2
+
3
+ ## Status
4
+
5
+ This component is deprecated and no longer available in the UI library.
6
+
7
+ ---
8
+
9
+ ## Notes
10
+
11
+ - If you need resizable layouts or panels, refer to current layout primitives or container-level CSS techniques used in the design system.
12
+ - For responsive behavior, prefer flexbox utilities and app-specific layout components.
@@ -23,7 +23,9 @@ export function VerticalScroll() {
23
23
  <ScrollArea className="h-40 w-64 rounded-md border p-2">
24
24
  <div className="space-y-2">
25
25
  {Array.from({ length: 20 }).map((_, i) => (
26
- <div key={i} className="rounded bg-muted p-2">Row {i + 1}</div>
26
+ <div key={i} className="bg-muted rounded p-2">
27
+ Row {i + 1}
28
+ </div>
27
29
  ))}
28
30
  </div>
29
31
  </ScrollArea>
@@ -39,7 +41,9 @@ export function HorizontalScroll() {
39
41
  <ScrollArea className="w-64 rounded-md border p-2">
40
42
  <div className="flex w-[600px] gap-2">
41
43
  {Array.from({ length: 10 }).map((_, i) => (
42
- <div key={i} className="w-48 shrink-0 rounded bg-muted p-2">Card {i + 1}</div>
44
+ <div key={i} className="bg-muted w-48 shrink-0 rounded p-2">
45
+ Card {i + 1}
46
+ </div>
43
47
  ))}
44
48
  </div>
45
49
  <ScrollBar orientation="horizontal" />
@@ -8,11 +8,11 @@ PDF viewer with secure defaults and dynamic worker setup. Uses `react-pdf` with
8
8
 
9
9
  ## Props
10
10
 
11
- | Prop | Type | Default | Description |
12
- | --- | --- | --- | --- |
13
- | `url` | `string` | — | PDF URL to load |
14
- | `initialPage` | `number` | `1` | Starting page number |
15
- | `className` | `string` | `""` | Additional wrapper classes |
11
+ | Prop | Type | Default | Description |
12
+ | ------------- | -------- | ------- | -------------------------- |
13
+ | `url` | `string` | — | PDF URL to load |
14
+ | `initialPage` | `number` | `1` | Starting page number |
15
+ | `className` | `string` | `""` | Additional wrapper classes |
16
16
 
17
17
  ---
18
18
 
@@ -32,7 +32,11 @@ import { SecurePdfViewer } from "laif-ds";
32
32
 
33
33
  export function InvoiceViewer() {
34
34
  return (
35
- <SecurePdfViewer url="/docs/invoice.pdf" initialPage={1} className="h-[700px]" />
35
+ <SecurePdfViewer
36
+ url="/docs/invoice.pdf"
37
+ initialPage={1}
38
+ className="h-[700px]"
39
+ />
36
40
  );
37
41
  }
38
42
  ```