xertica-ui 2.0.3 → 2.0.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 (50) hide show
  1. package/bin/cli.ts +2 -1
  2. package/components/assistant/markdown-message/markdown-message.mdx +1 -1
  3. package/components/brand/language-selector/language-selector.mdx +1 -1
  4. package/components/brand/theme-toggle/theme-toggle.mdx +1 -1
  5. package/components/brand/xertica-logo/xertica-logo.mdx +1 -1
  6. package/components/brand/xertica-provider/xertica-provider.mdx +1 -1
  7. package/components/brand/xertica-xlogo/xertica-xlogo.mdx +1 -1
  8. package/components/index.ts +6 -0
  9. package/components/layout/header/header.mdx +1 -1
  10. package/components/layout/sidebar/sidebar.mdx +2 -1
  11. package/components/media/floating-media-wrapper.mdx +2 -2
  12. package/components/pages/forgot-password-page/ForgotPasswordPage.tsx +2 -4
  13. package/components/pages/home-content/HomeContent.tsx +1 -1
  14. package/components/pages/home-content/home-content.mdx +1 -1
  15. package/components/pages/home-page/HomePage.stories.tsx +39 -0
  16. package/components/pages/home-page/HomePage.tsx +2 -3
  17. package/components/pages/home-page/home-page.mdx +56 -0
  18. package/components/pages/login-page/LoginPage.tsx +2 -5
  19. package/components/pages/reset-password-page/reset-password-page.mdx +6 -2
  20. package/components/pages/template-page/TemplatePage.stories.tsx +39 -0
  21. package/components/pages/template-page/TemplatePage.tsx +3 -1
  22. package/components/pages/template-page/template-page.mdx +54 -0
  23. package/components/pages/verify-email-page/VerifyEmailPage.tsx +2 -4
  24. package/components/ui/accordion/accordion.stories.tsx +27 -1
  25. package/components/ui/alert-dialog/alert-dialog.stories.tsx +30 -0
  26. package/components/ui/button/button.stories.tsx +23 -0
  27. package/components/ui/checkbox/checkbox.stories.tsx +20 -1
  28. package/components/ui/dialog/dialog.stories.tsx +30 -0
  29. package/components/ui/google-maps-loader/google-maps-loader.mdx +1 -1
  30. package/components/ui/input/input.stories.tsx +24 -0
  31. package/components/ui/switch/switch.stories.tsx +20 -1
  32. package/components/ui/tabs/tabs.stories.tsx +26 -1
  33. package/components.json +1507 -530
  34. package/dist/cli.js +3 -2
  35. package/dist/components/index.d.ts +6 -0
  36. package/dist/index.cjs.js +1233 -484
  37. package/dist/index.es.js +778 -28
  38. package/dist/ui.cjs.js +178 -178
  39. package/dist/ui.es.js +1 -1
  40. package/dist/use-mobile-CaENcqm-.js +4508 -0
  41. package/dist/use-mobile-DMOvImGQ.cjs +4542 -0
  42. package/dist/xertica-ui.css +1 -1
  43. package/docs/decision-tree.md +287 -0
  44. package/guidelines/Guidelines.md +250 -657
  45. package/llms-compact.txt +327 -0
  46. package/llms.txt +160 -71
  47. package/package.json +193 -192
  48. package/templates/CLAUDE.md +160 -0
  49. package/templates/guidelines/Guidelines.md +245 -99
  50. package/templates/package.json +2 -2
@@ -1,4 +1,5 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
+ import { expect, userEvent, within } from 'storybook/test';
2
3
  import { Switch } from './switch';
3
4
  import { Label } from '../label';
4
5
  import React from 'react';
@@ -64,4 +65,22 @@ export const Sizes: Story = {
64
65
  </div>
65
66
  </div>
66
67
  ),
67
- };
68
+ };
69
+
70
+ export const Toggle: Story = {
71
+ render: () => (
72
+ <div className="flex items-center space-x-2">
73
+ <Switch id="play-switch" />
74
+ <Label htmlFor="play-switch">Airplane Mode</Label>
75
+ </div>
76
+ ),
77
+ play: async ({ canvasElement }) => {
78
+ const canvas = within(canvasElement);
79
+ const switchEl = canvas.getByRole('switch');
80
+ await expect(switchEl).toHaveAttribute('aria-checked', 'false');
81
+ await userEvent.click(switchEl);
82
+ await expect(switchEl).toHaveAttribute('aria-checked', 'true');
83
+ await userEvent.click(switchEl);
84
+ await expect(switchEl).toHaveAttribute('aria-checked', 'false');
85
+ },
86
+ };
@@ -1,4 +1,5 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react';
2
+ import { expect, userEvent, within } from 'storybook/test';
2
3
  import { Tabs, TabsList, TabsTrigger, TabsContent } from './tabs';
3
4
  import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '../card';
4
5
  import { Button } from '../button';
@@ -105,4 +106,28 @@ export const Analytics: Story = {
105
106
  </TabsContent>
106
107
  </Tabs>
107
108
  ),
108
- };
109
+ };
110
+
111
+ export const SwitchTab: Story = {
112
+ args: { defaultValue: 'account', className: 'w-[400px]' },
113
+ render: (args) => (
114
+ <Tabs {...args}>
115
+ <TabsList className="grid w-full grid-cols-2">
116
+ <TabsTrigger value="account">Account</TabsTrigger>
117
+ <TabsTrigger value="password">Password</TabsTrigger>
118
+ </TabsList>
119
+ <TabsContent value="account"><p className="p-4 text-sm">Account content</p></TabsContent>
120
+ <TabsContent value="password"><p className="p-4 text-sm">Password content</p></TabsContent>
121
+ </Tabs>
122
+ ),
123
+ play: async ({ canvasElement }) => {
124
+ const canvas = within(canvasElement);
125
+ const accountTab = canvas.getByRole('tab', { name: 'Account' });
126
+ const passwordTab = canvas.getByRole('tab', { name: 'Password' });
127
+ await expect(accountTab).toHaveAttribute('aria-selected', 'true');
128
+ await expect(passwordTab).toHaveAttribute('aria-selected', 'false');
129
+ await userEvent.click(passwordTab);
130
+ await expect(passwordTab).toHaveAttribute('aria-selected', 'true');
131
+ await expect(accountTab).toHaveAttribute('aria-selected', 'false');
132
+ },
133
+ };