@nar-bus/ui-kit 1.0.0

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 (134) hide show
  1. package/dist/atoms/Avatar.d.ts +9 -0
  2. package/dist/atoms/Avatar.d.ts.map +1 -0
  3. package/dist/atoms/Badge.d.ts +8 -0
  4. package/dist/atoms/Badge.d.ts.map +1 -0
  5. package/dist/atoms/Button.d.ts +13 -0
  6. package/dist/atoms/Button.d.ts.map +1 -0
  7. package/dist/atoms/Checkbox.d.ts +7 -0
  8. package/dist/atoms/Checkbox.d.ts.map +1 -0
  9. package/dist/atoms/Icon.d.ts +22 -0
  10. package/dist/atoms/Icon.d.ts.map +1 -0
  11. package/dist/atoms/Input.d.ts +12 -0
  12. package/dist/atoms/Input.d.ts.map +1 -0
  13. package/dist/atoms/Label.d.ts +6 -0
  14. package/dist/atoms/Label.d.ts.map +1 -0
  15. package/dist/atoms/RadioGroup.d.ts +15 -0
  16. package/dist/atoms/RadioGroup.d.ts.map +1 -0
  17. package/dist/atoms/Select.d.ts +21 -0
  18. package/dist/atoms/Select.d.ts.map +1 -0
  19. package/dist/atoms/Separator.d.ts +19 -0
  20. package/dist/atoms/Separator.d.ts.map +1 -0
  21. package/dist/atoms/Skeleton.d.ts +8 -0
  22. package/dist/atoms/Skeleton.d.ts.map +1 -0
  23. package/dist/atoms/Spinner.d.ts +6 -0
  24. package/dist/atoms/Spinner.d.ts.map +1 -0
  25. package/dist/atoms/Switch.d.ts +7 -0
  26. package/dist/atoms/Switch.d.ts.map +1 -0
  27. package/dist/atoms/Textarea.d.ts +15 -0
  28. package/dist/atoms/Textarea.d.ts.map +1 -0
  29. package/dist/atoms/Tooltip.d.ts +10 -0
  30. package/dist/atoms/Tooltip.d.ts.map +1 -0
  31. package/dist/atoms/index.d.ts +16 -0
  32. package/dist/atoms/index.d.ts.map +1 -0
  33. package/dist/hooks/index.d.ts +6 -0
  34. package/dist/hooks/index.d.ts.map +1 -0
  35. package/dist/hooks/useBreadcrumb.d.ts +13 -0
  36. package/dist/hooks/useBreadcrumb.d.ts.map +1 -0
  37. package/dist/hooks/useCopyToClipboard.d.ts +2 -0
  38. package/dist/hooks/useCopyToClipboard.d.ts.map +1 -0
  39. package/dist/hooks/useDataTable.d.ts +47 -0
  40. package/dist/hooks/useDataTable.d.ts.map +1 -0
  41. package/dist/hooks/useDebounce.d.ts +2 -0
  42. package/dist/hooks/useDebounce.d.ts.map +1 -0
  43. package/dist/hooks/useMediaQuery.d.ts +5 -0
  44. package/dist/hooks/useMediaQuery.d.ts.map +1 -0
  45. package/dist/i18n/en.json.d.ts +199 -0
  46. package/dist/i18n/index.d.ts +2 -0
  47. package/dist/i18n/index.d.ts.map +1 -0
  48. package/dist/i18n/setup.d.ts +3 -0
  49. package/dist/i18n/setup.d.ts.map +1 -0
  50. package/dist/i18n/tr.json.d.ts +199 -0
  51. package/dist/index.css +1 -0
  52. package/dist/index.d.ts +14 -0
  53. package/dist/index.d.ts.map +1 -0
  54. package/dist/index.js +7726 -0
  55. package/dist/molecules/Combobox.d.ts +29 -0
  56. package/dist/molecules/Combobox.d.ts.map +1 -0
  57. package/dist/molecules/ConfirmDialog.d.ts +13 -0
  58. package/dist/molecules/ConfirmDialog.d.ts.map +1 -0
  59. package/dist/molecules/CopyableText.d.ts +7 -0
  60. package/dist/molecules/CopyableText.d.ts.map +1 -0
  61. package/dist/molecules/DatePicker.d.ts +12 -0
  62. package/dist/molecules/DatePicker.d.ts.map +1 -0
  63. package/dist/molecules/DateRangePicker.d.ts +13 -0
  64. package/dist/molecules/DateRangePicker.d.ts.map +1 -0
  65. package/dist/molecules/EmptyState.d.ts +17 -0
  66. package/dist/molecules/EmptyState.d.ts.map +1 -0
  67. package/dist/molecules/FormField.d.ts +12 -0
  68. package/dist/molecules/FormField.d.ts.map +1 -0
  69. package/dist/molecules/KpiCard.d.ts +18 -0
  70. package/dist/molecules/KpiCard.d.ts.map +1 -0
  71. package/dist/molecules/SearchInput.d.ts +21 -0
  72. package/dist/molecules/SearchInput.d.ts.map +1 -0
  73. package/dist/molecules/StatusBadge.d.ts +9 -0
  74. package/dist/molecules/StatusBadge.d.ts.map +1 -0
  75. package/dist/molecules/index.d.ts +11 -0
  76. package/dist/molecules/index.d.ts.map +1 -0
  77. package/dist/organisms/Breadcrumb.d.ts +15 -0
  78. package/dist/organisms/Breadcrumb.d.ts.map +1 -0
  79. package/dist/organisms/DataTable/DataTableHeader.d.ts +8 -0
  80. package/dist/organisms/DataTable/DataTableHeader.d.ts.map +1 -0
  81. package/dist/organisms/DataTable/DataTableRow.d.ts +9 -0
  82. package/dist/organisms/DataTable/DataTableRow.d.ts.map +1 -0
  83. package/dist/organisms/DataTable.d.ts +45 -0
  84. package/dist/organisms/DataTable.d.ts.map +1 -0
  85. package/dist/organisms/DataTable.types.d.ts +20 -0
  86. package/dist/organisms/DataTable.types.d.ts.map +1 -0
  87. package/dist/organisms/Dialog.d.ts +12 -0
  88. package/dist/organisms/Dialog.d.ts.map +1 -0
  89. package/dist/organisms/FilterPanel.d.ts +22 -0
  90. package/dist/organisms/FilterPanel.d.ts.map +1 -0
  91. package/dist/organisms/JsonEditor.d.ts +10 -0
  92. package/dist/organisms/JsonEditor.d.ts.map +1 -0
  93. package/dist/organisms/Pagination.d.ts +12 -0
  94. package/dist/organisms/Pagination.d.ts.map +1 -0
  95. package/dist/organisms/Popover.d.ts +22 -0
  96. package/dist/organisms/Popover.d.ts.map +1 -0
  97. package/dist/organisms/Sheet.d.ts +16 -0
  98. package/dist/organisms/Sheet.d.ts.map +1 -0
  99. package/dist/organisms/Tabs.d.ts +17 -0
  100. package/dist/organisms/Tabs.d.ts.map +1 -0
  101. package/dist/organisms/Toast.d.ts +10 -0
  102. package/dist/organisms/Toast.d.ts.map +1 -0
  103. package/dist/organisms/index.d.ts +11 -0
  104. package/dist/organisms/index.d.ts.map +1 -0
  105. package/dist/templates/AuthLayout.d.ts +8 -0
  106. package/dist/templates/AuthLayout.d.ts.map +1 -0
  107. package/dist/templates/DetailPageLayout.d.ts +33 -0
  108. package/dist/templates/DetailPageLayout.d.ts.map +1 -0
  109. package/dist/templates/ListPageLayout.d.ts +31 -0
  110. package/dist/templates/ListPageLayout.d.ts.map +1 -0
  111. package/dist/templates/ReportLayout.d.ts +22 -0
  112. package/dist/templates/ReportLayout.d.ts.map +1 -0
  113. package/dist/templates/index.d.ts +5 -0
  114. package/dist/templates/index.d.ts.map +1 -0
  115. package/dist/test/setup.d.ts +1 -0
  116. package/dist/test/setup.d.ts.map +1 -0
  117. package/dist/theme/ThemeProvider.d.ts +9 -0
  118. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  119. package/dist/theme/index.d.ts +4 -0
  120. package/dist/theme/index.d.ts.map +1 -0
  121. package/dist/theme/themeContext.d.ts +25 -0
  122. package/dist/theme/themeContext.d.ts.map +1 -0
  123. package/dist/theme/useTheme.d.ts +12 -0
  124. package/dist/theme/useTheme.d.ts.map +1 -0
  125. package/dist/theme.css +1 -0
  126. package/dist/utils/cn.d.ts +3 -0
  127. package/dist/utils/cn.d.ts.map +1 -0
  128. package/dist/utils/focusTrap.d.ts +24 -0
  129. package/dist/utils/focusTrap.d.ts.map +1 -0
  130. package/dist/utils/formatters.d.ts +25 -0
  131. package/dist/utils/formatters.d.ts.map +1 -0
  132. package/dist/utils/index.d.ts +3 -0
  133. package/dist/utils/index.d.ts.map +1 -0
  134. package/package.json +79 -0
@@ -0,0 +1,24 @@
1
+ /**
2
+ * focusTrap.ts — PAT-061 compliant focus-trap helpers.
3
+ *
4
+ * Plain functions, NOT React hooks. No useXxx exports.
5
+ * Single source of truth for focus-trap logic across all overlay organisms.
6
+ *
7
+ * Consumers: Sheet.tsx, Dialog.tsx, FilterPanel.tsx (incoming Wave 4).
8
+ *
9
+ * Rationale (D-172): The byte-identical 30-LOC block that previously lived
10
+ * in both Sheet.tsx and Dialog.tsx is extracted here to eliminate duplication
11
+ * and guarantee a single fix/update point for ARIA focus-trap behaviour.
12
+ */
13
+ export declare const FOCUSABLE_SELECTOR = "button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])";
14
+ /**
15
+ * Returns all focusable, visible, non-aria-hidden elements within `container`.
16
+ */
17
+ export declare function getFocusables(container: HTMLElement | null): HTMLElement[];
18
+ /**
19
+ * Traps keyboard Tab / Shift+Tab focus cycling within `container`.
20
+ * Must be attached to a `keydown` event listener on `document`.
21
+ * No-ops on non-Tab keys so callers can pass all keydown events safely.
22
+ */
23
+ export declare function trapFocus(e: KeyboardEvent, container: HTMLElement | null): void;
24
+ //# sourceMappingURL=focusTrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focusTrap.d.ts","sourceRoot":"","sources":["../../src/utils/focusTrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,kBAAkB,+IAC6G,CAAC;AAE7I;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,GAAG,WAAW,EAAE,CAK1E;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAkB/E"}
@@ -0,0 +1,25 @@
1
+ type Locale = "tr" | "en";
2
+ export declare function formatDate(date: Date | string | number | null | undefined, locale?: Locale): string;
3
+ export declare function formatDateTime(date: Date | string | number | null | undefined, locale?: Locale): string;
4
+ /**
5
+ * Like {@link formatDateTime} but includes seconds — for screens where the exact
6
+ * second matters (e.g. outage start/end on the modem detail screen, FIX-414).
7
+ */
8
+ export declare function formatDateTimeWithSeconds(date: Date | string | number | null | undefined, locale?: Locale): string;
9
+ export declare function formatNumber(num: number | null | undefined, locale?: Locale): string;
10
+ export declare function formatDecimal(num: number, decimals?: number, locale?: Locale): string;
11
+ export declare function formatSlug(flag: string, serial: string): string;
12
+ export declare function formatRelativeTime(date: Date | string | number | null | undefined, locale?: Locale): string;
13
+ export declare function formatPercentage(value: number | undefined | null, decimals?: number): string;
14
+ /**
15
+ * Format a duration given in seconds as a human-readable string.
16
+ *
17
+ * - < 60 s → "{N} sn" (1 decimal place if non-integer)
18
+ * - < 3600 s → "{M} dk {S} sn" (S omitted when zero)
19
+ * - >= 3600 s → "{H} sa {M} dk" (M omitted when zero)
20
+ *
21
+ * Negative or non-finite inputs return "--".
22
+ */
23
+ export declare function formatDuration(seconds: number | null | undefined, locale?: Locale): string;
24
+ export {};
25
+ //# sourceMappingURL=formatters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/utils/formatters.ts"],"names":[],"mappings":"AAGA,KAAK,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;AAQ1B,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,MAAM,GAAE,MAAa,GAAG,MAAM,CAKzG;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,MAAM,GAAE,MAAa,GAAG,MAAM,CAK7G;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/C,MAAM,GAAE,MAAa,GACpB,MAAM,CAKR;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,MAAM,GAAE,MAAa,GAAG,MAAM,CAG1F;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,SAAI,EAAE,MAAM,GAAE,MAAa,GAAG,MAAM,CAKtF;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,MAAM,GAAE,MAAa,GAAG,MAAM,CAKjH;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,QAAQ,SAAI,GAAG,MAAM,CAGvF;AAOD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,MAAM,GAAE,MAAa,GAAG,MAAM,CAoBhG"}
@@ -0,0 +1,3 @@
1
+ export { cn } from './cn';
2
+ export { formatDate, formatDateTime, formatDateTimeWithSeconds, formatNumber, formatDecimal, formatSlug, formatRelativeTime, formatPercentage, formatDuration, } from './formatters';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EACL,UAAU,EACV,cAAc,EACd,yBAAyB,EACzB,YAAY,EACZ,aAAa,EACb,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,GACf,MAAM,cAAc,CAAC"}
package/package.json ADDED
@@ -0,0 +1,79 @@
1
+ {
2
+ "name": "@nar-bus/ui-kit",
3
+ "version": "1.0.0",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./theme.css": "./dist/theme.css"
14
+ },
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "sideEffects": [
19
+ "**/*.css"
20
+ ],
21
+ "publishConfig": {
22
+ "access": "public",
23
+ "registry": "https://registry.npmjs.org/"
24
+ },
25
+ "scripts": {
26
+ "build": "vite build && node -e \"const fs=require('fs');const f=fs.readdirSync('dist').find(x=>x.endsWith('.css'));if(f&&f!=='theme.css')fs.copyFileSync('dist/'+f,'dist/theme.css')\"",
27
+ "dev": "vite build --watch",
28
+ "typecheck": "tsc --noEmit",
29
+ "lint": "eslint src/",
30
+ "test": "vitest run",
31
+ "test:watch": "vitest",
32
+ "storybook": "storybook dev -p 6006 --no-open",
33
+ "build-storybook": "storybook build -o storybook-static",
34
+ "prepublishOnly": "npm run build"
35
+ },
36
+ "peerDependencies": {
37
+ "react": "^19.0.0",
38
+ "react-dom": "^19.0.0",
39
+ "react-i18next": "^15.0.0",
40
+ "i18next": "^24.0.0",
41
+ "sonner": "^2.0.0",
42
+ "@tanstack/react-table": "^8.0.0",
43
+ "@tanstack/react-virtual": "^3.0.0",
44
+ "tailwindcss": "^4.0.0"
45
+ },
46
+ "devDependencies": {
47
+ "@nar-bus/ui-shared": "*",
48
+ "@storybook/addon-a11y": "^8.4.0",
49
+ "@storybook/addon-essentials": "^8.6.18",
50
+ "@storybook/addon-themes": "^8.4.0",
51
+ "@storybook/react": "^8.4.0",
52
+ "@storybook/react-vite": "^8.4.0",
53
+ "@storybook/test": "^8.4.0",
54
+ "@tailwindcss/vite": "^4.2.2",
55
+ "@testing-library/jest-dom": "^6.9.1",
56
+ "@testing-library/react": "^16.3.2",
57
+ "@testing-library/user-event": "^14.6.1",
58
+ "@types/react": "^19.0.0",
59
+ "@types/react-dom": "^19.0.0",
60
+ "@vitejs/plugin-react": "^4.7.0",
61
+ "jsdom": "^25.0.1",
62
+ "storybook": "^8.4.0",
63
+ "tailwindcss": "^4.2.2",
64
+ "typescript": "~5.9.3",
65
+ "vite": "^6.2.5",
66
+ "vite-plugin-dts": "^4.5.4",
67
+ "vitest": "^2.1.9"
68
+ },
69
+ "dependencies": {
70
+ "@fontsource-variable/geist": "^5.2.8",
71
+ "@fontsource-variable/geist-mono": "^5.2.7",
72
+ "clsx": "^2.1.1",
73
+ "date-fns": "^4.1.0",
74
+ "lucide-react": "^0.475.0",
75
+ "react-colorful": "^5.6.1",
76
+ "tailwind-merge": "^3.0.2",
77
+ "zod": "^3.25.76"
78
+ }
79
+ }